apache .htaccess

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:

  1. Ir a /etc/apache2/sites-enabled/
  2. Haga ls para encontrar el archivo para el sitio web que está buscando
  3. Edite el archivo correspondiente con nano THE_CONF_FILE o con el editor que desee
  4. Cambie todos los valores de AllowOverride None que vea en diferentes <Directory> ... </Directory> s para AllowOverride All
  5. Guarde el archivo y ciérrelo

  6. Ahora necesita habilitar la reescritura del módulo ejecutando el comando: sudo a2enmod rewrite

  7. 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é.