Apache, .htacces

From Wiki de Caballero
Revision as of 14:54, 5 March 2015 by Alex (talk | contribs) (→‎¿Para que sirve?)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

¿Qué es .htacces?

Un fichero .htaccess, también conocido como archivo de configuración distribuida, es un fichero especial, popularizado por el Servidor HTTP Apache que permite definir diferentes directivas de configuración para cada directorio sin necesidad de editar el archivo de configuración principal de Apache.

¿Para que sirve?

Con este archivo podremos configurar nuestro servidor web para:

  • Hacerlo algo más seguro.
  • Realizar redirecciones.
  • Crear mensajes de error personalizados.
  • Restringir el acceso a carpetas.
  • Evitar el listado de directorios de nuestro servidor.
  • Permitir el uso de nuestro dominio sin usar las famosas 'www'.
  • Entre otras.

Options -Multiviews

Las Options (Opciones de directiva) controla qué características del servidor están disponibles en un directorio en particular.
Por defecto todas las opciones vienen habilitadas, excepto para Multiviews
Al deshabilitar la opción Multiviews en el archivo .htaccess, hace que apague la negociación de contenido para buscar variantes dentro de los directorios.

RewriteEngine On

El módulo mod_rewrite utiliza un motor de reescritura compuesta por reglas, basado en un analizador de expresiones regulares PCRE (compatibles con Perl), para reescribir las URL solicitada. De forma predeterminada, mod_rewrite asigna una dirección URL a una trayectoria del sistema de ficheros. Sin embargo, también se puede utilizar para redirigir un URL a otro URL.

RewriteBase

Establece la base de la URL para reescrituras por directorio.

RewriteRule ^admin.* - [L]

Significa que todo directorio que comience(^) con admin seguido de cualquier archivo o otro directorio, no se sobreescriba.
La [L] es una configuración especial del RewriteRule llamada bandera (flag).
A continuación se explicará un poco mas sobre las banderas [L] y [QSA].

[L]

La bandera [L] provoca en mod_rewrite que deje de procesar el conjunto de reglas siguientes.
En la mayoría de los contextos, esto significa que si la regla coincide, se procesara sin importar si existen más reglas. Esto corresponde con el last comando en Perl, o break comando en C.
Utilizar esta opción para indicar que la norma actual se debe aplicar de inmediato sin tener en cuenta otras normas.

[QSA]

Con la bandera [QSA], una solicitud de /pages/123?one=two se asignará a /page.php?page=123&one=two

Sin la bandera [QSA], esa misma solicitud se asignará a /page.php?page=123 es decir, la cadena de consulta existente será descartado.

Personalizar Errores

  • ErrorDocument 400 /directorio/error/404.html
  • ErrorDocument 401 /directorio/error/401.html
  • ErrorDocument 403 /directorio/error/403.html
  • ErrorDocument 404 /directorio/error/404.html

Proteger carpetas

Este archivo .htaccess lo colocaremos en la carpeta que queremos proteger. Editemos el .htaccess con algo similar a :

AuthUserFile /ruta/absoluta/hacia/.htpasswd
AuthName AquiPuedesPonerLoQueQuieras
AuthType Basic

require user test123

El archivo .htpasswd

Este archivo contiene una lista de nombres de usuario y contraseñas, en formato usuario:contraseña y cada nombre-clave en una línea independiente, por ejemplo :

test123:12JvVkeJRgm8A
otrousuario:$1$UNHEaBiV$NzwYQ8NhjzIOUmFyfGyrO