Ich verwende Ubuntu 20.04 und erstelle derzeit eine API mit PHP. Ich habe eine .htaccess
Datei hinzugefügt, die alle 404-Seiten zurück zu meiner index.php umleiten SOLLTE. Ich frage dies in askubuntu, weil ich glaube, dass es ein Problem mit meinen Apache-Konfigurationen sein könnte. Ich bin in meine 000-default
Datei gegangen /etc/apace2/sites-available
und habe Folgendes geändert:
<Directory /var/www/html>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
Ich habe meins auch so geändert, apache2.conf
dass /etc/apache2/apache2.conf
es so aussieht:
<Directory />
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
Dies ist der Inhalt meiner .htaccess-Datei:
<IfModule mod_rewrite.c>
RewriteEngine On
# Send would-be 404 requests to Craft
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
RewriteRule (.+) index.php?p=$1 [QSA,L]
</IfModule>
Ich habe versucht, etwas wie „DIES SOLLTE EIN FEHLER WERDEN“ zu schreiben, aber als ich den Browser neu laden wollte, erhielt ich nicht wie erwartet einen 500-Fehler, sondern trotzdem einen 400-Fehler. Dies sagt mir also, dass meine .htaccess
Datei nicht betroffen ist.
Nach der Änderung aller Apache- oder Systemdateien habe ich
sudo systemctl restart apache2
aber keine Chance.
Ich bin mir nicht sicher, was ich an dieser Stelle noch ändern soll. Für jede Hilfe bin ich dankbar, danke.
Antwort1
Ich vermute, das Problem liegt nicht darin, dass Ihre .htaccess ignoriert wird, sondern darin, dass mod_rewrite nicht aktiviert ist. Versuchen Sie, sudo a2enmod rewrite
Apache2 neu zu starten.