.htaccess (edición, especificaciones)

El contenido del archivo .htaccess forma parte de la configuración del servidor web de Linux, utilizado a menudo para mod rewrite, pero también puede afectar a otros parámetros útiles. Encontrará a continuación algunos ejemplos de uso y sintaxis.

¿Cómo crear/editar .htaccess?

En el Área de cliente dispone de una herramienta, que le permite la edición de los archivos existentes y que incluye como principal caracteristica, la posibilidad de crear nuevos archivos mediante una interfaz gráfica. O bien, puede crear un archivo con su editor de texto favorito, y colocarlo en el servidor en el directorio deseado a través de FTP.

  1. Inicie sesión en el Panel de control..
  2. Elija el hosting para el que quiere editar .htaccess (Servicios/Webhosting y servidores/Servidores virtuales).
  3. En Información del servicio, haga clic en el botón Configuración en el apartado Edición del archivo htaccess.
  4. Aquí podrá seleccionar la carpeta en la que desea editar el archivo .htaccess ( "/" es el directorio raíz - es decir, www).
  5. Escriba el registro .htaccess requerido en el formulario y confirme el cambio haciendo clic en el botón Guardar.

Instrucciones detalladas:

  1. Con sus datos de acceso, inicie sesión en el Panel de control. Si no dispone de sus datos de acceso puede solicitar una nueva contraseña.
  2. Una vez haya accedido, elija el servidor virtual para el que quiere editar .htaccess (Servicios/Webhosting y servidores/Servidores virtuales).                                                                                                 
  3. En Información del servicio, haga clic en el botón Configuración en el apartado Edición del archivo htaccess.                                                                                                                                                        
  4. Aquí podrá seleccionar la carpeta en la que desea editar el archivo .htaccess ( "/" es el directorio raíz - es decir, www).                                                                                                                            
  5. Escriba el registro .htaccess requerido en el formulario y confirme el cambio haciendo clic en el botón Guardar.

Configuraciones heredadas


Los ajustes en .htaccess se aplican no sólo al directorio en el que se encuentra el archivo, sino que también lo heredan todas las subcarpetas (pueden, por ejemplo, interferir con las reglas de reescritura). Las configuraciones heredadas siempre pueden ser anuladas por una nueva configuración .htaccess en la subcarpeta (que seguirán heredando sus correspondientes subcarpetas).

Importante: Una configuración incorrecta provocará "Error interno del servidor"


Ejemplos de los ajustes más utilizados

 

Proteger con contraseña el acceso al directorio


Puede configurar el acceso mediante usuario y contraseña a un directorio específico, en la sección Servicios/ Webhosting y Servidores/Servidores virtuales del Panel de control haciendo clic en el nombre de dominio y eligiendo el botón Configuración en Edición del archivo .htaccess.

  1. Aquí, en la carpeta correspondiente, seleccione "Crear según plantilla".

  2. A continuación, establezca las credenciales en el directorio y confirme haciendo clic en Create htacces.                                                                                                                      

  3. Para ver o modificar las credenciales o añadir un nuevo usuario para el directorio, vaya nuevamente a Servicios/ Webhosting y Servidores/Servidores virtuales del Panel de control, haga clic en el nombre de dominio y elija el botón Configuración en Edición del archivo .htaccess. A continuación, haga clic en contraseña en el directorio correspondiente.                                                                                                                                                                                                                                                                                                                                                               

  4. En la siguiente pantalla podrá añadir un nuevo usuario, o modificar/eleminar un usuario existente.                                                                                                                                                                                                                                 

SUGERENCIA: La lista de detalles de acceso ya creados, incluidas las contraseñas (en forma cifrada), se encuentra en la edición .htpasswd en la parte inferior de la configuración. También tiene la opción de eliminar accesos (para volver a habilitar el acceso al directorio sin una contraseña).

Configuración del servidor Web



Comentario - Todo el texto que está en la línea después del carácter "#" es ignorado por el servidor
# Esto le permite escribir notas para una posterior orientación


Configuración del archivo predeterminado (index) directorio - por defecto
# Los nombres están separados por un espacio, una distinción entre mayúsculas y minúsculas (index.php y Index.php son por lo tanto dos archivos diferentes)


DirectoryIndex index.php index2.php index.htm index.html


# Contenido del directorio retirado de la lista - Predeterminado desactivado
# Si no hay ningún archivo de índice en el directorio (vea DirectoryIndex arriba), puede tener el contenido listado


Options +Indexes


Configuración de páginas de error personalizadas
# Como dirección, puede especificar una dirección URL o una ruta relativa: la dirección relativa aparece en el directorio /www/

ErrorDocument 401 /ruta/archivo401.html # (Así que la ubicación del archivo es /www/ruta/archivo401.html)
ErrorDocument 404 /ruta/archivo404.html
ErrorDocument 500 /ruta/archivo500.html
ErrorDocument 503 http://dominio.es/ruta/archivo.html


Control de acceso
# Activar/desactivar el acceso al directorio desde direcciones IP

Allow from all # La configuración por defecto - acceso permitido desde todas las direcciones IP
Deny from all # Evita el acceso desde todas las direcciones IP (por ejemplo, PHP se obtiene localmente en el directorio)
Deny from 81.95.96.29 # Bloquear el acceso desde determinadas direcciones IP
Deny from 81.95.96 # Bloquear el acceso desde un rango de direcciones IP 81.95.96.xx


Configuración PHP

# Configuración register globals
php_flag register_globals on/off

Configuración magic quotes
php_flag magic_quotes_gpc on

Configuración display errors
php_flag display_errors on

#Configuración max_input_vars 
php_value max_input_vars 5000 (o cualquier otro número de acuerdo a sus necesidades)

Algunos ajustes de PHP (por ejemplo, memory_limit) no se pueden establecer  en el .htaccess


 

Mod Rewrite


# Antes de que se establezcan reglas, la reescritura debe estar activada
RewriteEngine On

# Redireccionar el dominio algo.dominio.es hacia dominio.es/directorio bajo 301
RewriteCond %{HTTP_HOST} ^algo\.dominio\.es$
RewriteRule ^(.*)$ http://dominio.es/directorio [R,L]

# Redireccionar el dominio algo.dominio.es hacia dominio.es/directorio
RewriteCond %{HTTP_HOST} ^algo\.dominio\.es [NC]
RewriteCond %{REQUEST_URI}  !^/directorio/
RewriteRule ^(.*)$ /directorio/$1 [L,QSA]

Puede encontrar más información sobre mod rewrite en la documentación:
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

Desactivar eAccelerator

php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0


 

Implementar HTTPS (redirección .htaccess)


HTTPS está implementado (como el propio HTTP) en el alojamiento de Linux mediante el uso del proxy inverso Nginx, que emite el llamado TLS de descarga.

El tráfico entre Nginx y Apache no está cifrado y Apache sabrá acerca del cifrado sólo de la comunicación. Esto resulta en las siguientes limitaciones para las aplicaciones que intentan verificar que se accede a través de HTTPS seguro.

- La detección en PHP usando la variable $_SERVER ['HTTPS']! = 'On' es totalmente funcional
- La variable $_SERVER['SERVER_PORT'] incluye el uso de HTTPS número 80
- ¡La detección con el archivo .htaccess mediante las reglas "RewriteCond %{SERVER_PORT} !^443$" y "RewriteCond %{HTTPS} !on" no funciona! El puerto en estos casos siempre será 8x, con la versión de PHP y HTTPS variable siempre es Off. En lugar de la variable %{HTTPS} es necesario usarla para la detección la variable %{HTTP:X-Forwarded-Proto}.

Para redirigir en HTTPS se recomienda que cumpla con las siguientes condiciones, manteniendo al mismo tiempo la compatibilidad con versiones anteriores:

RewriteCond %{HTTPS} !on

RewriteCond %{HTTP:X-Forwarded-Proto} !=https

RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,QSA,NE]