.htaccess no funciona (apache2 | ubuntu 18.04)

Aug 02 2020

chicos, el sitio web funciona bien, solo el archivo .htaccess que no funciona, busqué mucho en Google, ya estaba habilitado a2enmod rewritee intenté muchas cosas pero no funcionó.

obs: estoy usando el sitio web example.com como ejemplo

así es mi /etc/apache2/sites-available/000-default.conf:

<VirtualHost *:80>

    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

y así /etc/apache2/apache2.confes mi:

<Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

así es mi .htaccess:

#DISALOW DIRECTORY LISTING
Options -Indexes

ErrorDocument 400 /.error.php
ErrorDocument 401 /.error.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 405 /.error.php
ErrorDocument 408 /.error.php
ErrorDocument 414 /.error.php
ErrorDocument 500 /500.php
ErrorDocument 502 /.error.php
ErrorDocument 504 /.error.php

pero no está deshabilitando la lista de directorios y no muestra el contenido 404.phpcuando no se encuentra la página.

Respuestas

4 pa4080 Aug 02 2020 at 02:59

La configuración predeterminada actual de la AllowOverridedirectiva causa su problema. Si desea permitir la anulación de todo lo posible por un .htaccessarchivo para cierto host virtual, debe cambiar su configuración de la siguiente manera:

cat /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>

    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot "/var/www/example.com/public_html"

    <Directory "/var/www/example.com/public_html">
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

No olvide volver a cargar o reiniciar Apache después de cambiar los archivos .conf.