.htaccess funktioniert nicht (Apache2 | Ubuntu 18.04)

Aug 02 2020

Jungs, die Website funktioniert gut, nur die Datei .htaccess, die nicht funktioniert, ich habe viel gegoogelt, bereits aktiviert a2enmod rewriteund viel ausprobiert, aber es hat nicht funktioniert.

obs: Ich verwende die Website example.com als Beispiel

so /etc/apache2/sites-available/000-default.confist meins:

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

und so /etc/apache2/apache2.confist meins:

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

so sieht meine .htaccess aus:

#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

aber es verbietet nicht die Verzeichnisauflistung und zeigt den Inhalt nicht an, 404.phpwenn die Seite nicht gefunden wird.

Antworten

4 pa4080 Aug 02 2020 at 02:59

Die aktuelle Standardeinstellung der AllowOverrideDirektive verursacht Ihr Problem. Wenn Sie zulassen möchten, dass alles Mögliche durch eine .htaccessDatei für einen bestimmten virtuellen Host außer Kraft gesetzt wird, müssen Sie seine Konfiguration folgendermaßen ändern:

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>

Vergessen Sie nicht, Apache neu zu laden oder neu zu starten, nachdem Sie die .conf-Dateien geändert haben.