Funcionalidad de los ficheros .htaccess
¿Qué puedo hacer con un fichero .htaccess?
Los dos elementos más interesantes conciernen a la protección del acceso a su sitio web. Estos dos elementos poseen guías separadas:
- protección del acceso a un directorio por autentificación.
- impedir a ciertas direcciones IP el acceso al sitio web.
Si no existe dicho fichero ".htaccess", debe crearlo a partir de un fichero de texto (bloc de notas de Windows o bien otro editor de texto) y colocarlo en la carpeta deseada del sitio web.
Puede igualmente efectuar otras operaciones que detallamos a continuación.
Impedir el listado del contenido de un directorio
Entendemos por indexación el hecho de que el directorio muestre la lista de ficheros que contiene en ausencia de índice (.cgi, .html, .php etc ....).
Para impedir a los internautas listar el conjunto de los ficheros contenidos en un directorio, cree un fichero .htaccess que contenga la línea siguiente:
Options -Indexes
RegistrerGlobals
Si lo necesita, puede cambiar el valor de Register globals (por defecto = 1) añadiendo a su fichero
.htaccess de su alojamiento, la línea :
SetEnv REGISTER_GLOBALS 0
Configuración de Zend Optimizer
Es posible activar Zend optimizer poniendo valor afirmativo (1) al valor ZEND_OPTIMIZER.
| ATENCIÓN : El uso de Zend Optimizer necesita obligatoriamente la desactivación de Ioncube así como el uso de PHP 5 |
SetEnv ZEND_OPTIMIZER 1
SetEnv IONCUBE 0
SetEnv PHP_VER 5
Configuración de Ioncube
Es posible activar Ioncube poniendo valor afirmativo (1) al valor IONCUBE.
SetEnv IONCUBE 1
| ATENCIÓN : El uso de Ioncube necesita obligatoriamente la desactivación de Zend Optimizer así como el uso de PHP 5 |
SetEnv IONCUBE 1
SetEnv ZEND_OPTIMIZER 0
SetEnv PHP_VER 5
Configuración de Magic Quotes
Es posible activar Ioncube poniendo valor afirmativo (1) al valor MAGIC_QUOTES.
SetEnv MAGIC_QUOTES 1
Esta opción es compatible con el resto de variables anteriores.
Ejemplo:
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 1
SetEnv PHP_VER 5
Este ejemplo permite desactivar REGISTER_GLOBALS, activar ZEND_OPTIMIZER y MAGIC_QUOTES y utilizar PHP 5 para los ficheros con extensión php.
Configuración del valor sesión
Hay dos métodos de propagación del identificador de sesión :
Cookies y
URL.
El valor de SESSION_USE_TRANS_SID determina el método de propagación. Si se activa el método de propagación es por URL. Si se desactiva el método de propagación es por Cookies.
Si lo necesita, puede cambiar el valor de "Session Use Trans sid" (por defecto = 1) añadiendo a su fichero
.htaccess de su alojamiento, la línea :
SetEnv SESSION_USE_TRANS_SID 0
Activar compresión gzip
Es posible activar la compresión gzip a través de Zend Optimizer y la opción :
SetOutputFilter DEFLATE
Es recomendable desactivar la compresión para las imágenes y para los navegadores que no lo soportan.
Un ejemplo del texto necesario
SetEnv ZEND_OPTIMIZER 1
SetEnv IONCUBE 0
SetEnv PHP_VER 5
SetOutputFilter DEFLATE
# Navegadores no compatibles
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0678 no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# No comprimir imágenes ni peticiones de proxy
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
Safe mode
Si lo necesita, puede cambiar el valor de Safe mode (por defecto = 1) añadiendo a su fichero
.htaccess de su alojamiento, la línea :
SetEnv php_admin_value safe_mode 0
Redirigir los mensajes de error
Si desea utilizar mensajes de error personalizados o redirigir los errores hacia una página web, cree un fichero .htaccess que contenga líneas de la forma siguiente:
ErrorDocument número_de_error mensaje_o_destinación
| Reemplace "número_de_error" por el número correspondiente. Reemplace "mensaje_o_destinación" por la acción que desea efectuar. |
Los 3 errores más corrientes son:
404 : página inexistente
403 : acceso denegado
500 : error interno del servidor
Para mostrar un simple mensaje, escriba el mensaje correspondiente entre comillas. Para redirigir sobre una página, introduzca la ruta de acceso a la página.
Ejemplos:
Desea mostrar el mensaje: "Lo sentimos, no puede acceder a este fichero" tras un error 403. Debe escribir la línea siguiente en su .htaccess :
ErrorDocument 403 "Lo sentimos, no puede acceder a este fichero"
Desea reenviar los errores 404 sobre su página personalizada 404.html (para su diminio mi_dominio.com) :
ErrorDocument 404 http://www.mi_dominio.com/404.php
Especificar un fichero index diferente
Por defecto, el fichero índice de un directorio es index.html, index.htm ó index.php.
Si desea que sea otro fichero, puede escribir una línea de este tipo en su .htaccess :
DirectoryIndex nombre_del_fichero
Por ejemplo, si quiere utilizar la página inicio.html como página índice, utilice la línea siguiente:
DirectoryIndex inicio.html
Redirigir el inicio de la página
Por defecto, el directorio inicial es el raíz, que corresponde a la carpeta inicial (www) del FTP. Es posible cambiar la ruta inicial y que al cargar la página se dirija a una subcarpeta dentro de la carpeta principal.
Podemos así, hacer que las visitas se redirijan desde el dominio principal hacia cualquier URL, por ejemplo:
http://www.mi_dominio.com/Ruta-deseada-inicial/
Para ello utilizamos la opción
redirectMatch
redirectMatch 301 ^/$ http://www.mi_dominio.com/Ruta-deseada-inicial/
Esto crea una redirección permanente haciendo que, cuando las visitas teclean
http://www.mi_dominio.com/, el sistema le redirige hacia
http://www.mi_dominio.com/Ruta-deseada-inicial/
También podemos redirigir el dominio, sólo cuando el visitante no pone las "www" para poner a "www.midominio.com" en todo momento.
En ese caso utilizamos la opción
redirectMatch de la forma:
redirectMatch 301 ^mi_dominio.com/$ http://www.mi_dominio.com/
Reescritura de URL
Puede, por razones diversas, querer reescribir las URLs de su sitio.
Para eso, puede utilizar un fichero .htacces de la siguiente forma:
RewriteEngine on
RewriteRule regla_de_reescritura
Basta con reemplazar "regla_de_reescritura" por la regla que necesite. Puede escribir varias reglas en un mismo fichero.
Más información en nuestra guía :
HtaccessModRewrite
Las posibilidades son demasiadas para describirlas todas en esta guía.
Refiérase a la documentación oficial para más detalles:
http://httpd.apache.org/docs/misc/rewriteguide.html
Ocultación de warnings PHP
Por defecto, los warnings y errores de PHP se muestran en la salida estándar (página web).
Puede ocultarlos con la opción
display_errors .
| ATENCIÓN : El uso de display_errors necesita obligatoriamente el uso de PHP 5.2 |
SetEnv PHP_VER 5_2
SetEnv DISPLAY_ERRORS 0
Más información
:
HtaccessProtection : ¿Cómo proteger el acceso a un directorio por autentificación?.
:
HtaccessProtectIP : ¿Cómo bloquear ciertas IP a nivel de mi sitio?.
:
HtaccessPhpVersion :: Opciones de PHP en los alojamientos compartidos
:
HtaccessModRewrite :: Algunas ideas sobre el módulo rewrite de Apache