apache - .htaccess file not reading("Opciones-Indexes" en el archivo.htaccess no funciona)
(7)
Creé un archivo .htaccess solo con la siguiente línea:
Opciones -Indexes
Sin embargo, el índice aún se muestra para el directorio.
Acabo de instalar Apache2 y estoy usando todos los valores predeterminados (no modifiqué apache2.conf o httpd.conf).
Sistema operativo: Ubuntu 12.04 (Precise Pangolin)
Versión de Apache2: Versión del Server version: Apache/2.2.22 (Ubuntu) Server built: Feb 13 2012 01:51:56
$ ls -l .htaccess
-rwxr-xr-x .htaccess
EDITAR:
Tomé el consejo de lanzz y agregué un galimatías al archivo .htaccess
y descubrí que el archivo .htaccess
no se está leyendo.
Además, además de cambiar AllowOverride All al archivo de configuración de vhost, también puede necesitar agregar lo siguiente al comienzo del archivo .htaccess:
RewriteEngine On
RewriteBase /
De lo contrario, todavía no puede detectar las reescrituras o redirecciones.
Como ya no hay un archivo httpd.conf
, lo que debes hacer en un VPS es:
- Ir a
/etc/apache2/sites-enabled/
- Haga
ls
para encontrar el archivo para el sitio web que está buscando - Edite el archivo correspondiente con
nano THE_CONF_FILE
o con el editor que desee - Cambie todos los valores de
AllowOverride None
que vea en diferentes<Directory> ... </Directory>
s paraAllowOverride All
Guarde el archivo y ciérrelo
Ahora necesita habilitar la reescritura del módulo ejecutando el comando:
sudo a2enmod rewrite
- Y finalmente, para activar la nueva configuración, debe ejecutar:
service apache2 restart
¡Funcionará como un encanto ahora!
Debería verificar que la configuración de Apache permita que se ejecute el .htaccess. En su configuración de host virtual, debe haber una línea:
AllowOverride All
Si no lo hay, es por eso que el .htaccess no está teniendo efecto.
En caso de que tengas
AllowOverride None
Cambiar eso a:
AllowOverride All
en su httpd.conf o en su archivo virtualhost predeterminado en /etc/apache2/sites-available/...conf
Para que esto funcione, agregué lo siguiente a /etc/apache2/httpd.conf
(que es un archivo de longitud cero por defecto cuando Apache está instalado) y luego reinicié Apache. Ahora Options -Indexes
en el archivo .htaccess
funciona como desee. Aquí está el mínimo indispensable para que funcione:
/etc/apache2/httpd.conf :
<VirtualHost *:80>
DocumentRoot /var/www
<Directory / >
</Directory>
</VirtualHost>
La sugerencia de lanzz de agregar una línea de galimatías al archivo .htaccess
para ver si se leía fue útil para diagnosticar el problema.
Tenga en cuenta que AllowOveride
defecto en All
, según el comentario de Evan Mulawski , por lo que no se requiere en el conjunto mínimo de líneas httpd.conf
que se encuentran arriba.
Resolví este problema en RHEL editando el archivo /etc/http/conf/httpd.conf
Cambié todo
AllowOverride None
A
AllowOverride All
También puedes verificar httpd.conf AllowOverride siguiendo el comando en RHEL
grep -i AllowOverride /etc/conf/conf/httpd.conf
Yo tuve el mismo problema. Estaba usando un host virtual, así que modifiqué httpd-vhosts.conf, así que si está usando uno, esto podría ayudar
Donde configura su referencia de host la etiqueta de directorio debe ser la misma que su raíz de documento
<VirtualHost *:8080>
ServerName somelocalserver
DocumentRoot "C:/Websites/htdocs/yoursite"
<Directory "C:/Websites/htdocs/yoursite">
Options FollowSymLinks
AllowOverride All
</Directory>
Necesitaba AllowOverride All
para reconocer el archivo .htaccess.
Editar
También necesitaba agregar la ruta a la raíz del sitio en la etiqueta del directorio. es decir, <Directory "C:/Websites/htdocs/yoursite">
. Este fue el valor predeterminado en las muestras que utilicé.