.htaccess funktioniert nicht (Apache2 | Ubuntu 18.04)
Jungs, die Website funktioniert gut, nur die Datei .htaccess, die nicht funktioniert, ich habe viel gegoogelt, bereits aktiviert a2enmod rewrite
und viel ausprobiert, aber es hat nicht funktioniert.
obs: Ich verwende die Website example.com als Beispiel
so /etc/apache2/sites-available/000-default.conf
ist 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.conf
ist 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.php
wenn die Seite nicht gefunden wird.
Antworten
Die aktuelle Standardeinstellung der AllowOverrideDirektive verursacht Ihr Problem. Wenn Sie zulassen möchten, dass alles Mögliche durch eine .htaccess
Datei 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.