.htaccess wird im PHP-Projekt nicht wirksam

.htaccess wird im PHP-Projekt nicht wirksam

Ich verwende Ubuntu 20.04 und erstelle derzeit eine API mit PHP. Ich habe eine .htaccessDatei 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-defaultDatei gegangen /etc/apace2/sites-availableund 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.confdass /etc/apache2/apache2.confes 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 .htaccessDatei nicht betroffen ist.

Nach der Änderung aller Apache- oder Systemdateien habe ich

sudo systemctl restart apache2aber 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 rewriteApache2 neu zu starten.

verwandte Informationen