Ich verwende Apache2 (meinen Dummy-Server), der bereits mit meinem Debian installiert ist. Alles geht gut, aber jetzt das Problem mit meinem .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Es funktioniert nicht
Ich denke, es liegt an Apache2 Version, die ich verwende und möglicherweise Probleme mit meinem Code oder etwas, das ich auf meinem Server config haben muss
Ich möchte umleiten meine URL zur Hauptindexseite, wenn ein falscher Eintrag oder nicht verfügbar
Nach einem ganzen Tag bekam ich meine Antwort
Im Ordner
Apache2 >> sites-available >> Es gibt eine Datei mit dem Namen default
In der Standardeinstellung müssen wir es ändern
Von:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ZU:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Es funktioniert. Die Verwendung von .htaccess-Dateien ist aktiviert.
Ich möchte hinzufügen, dass /etc/Apache2/mods-available/rewrite.load
aktiviert sein muss:
a2enmod rewrite
Unter Debian dachte ich, dass es standardmäßig aktiviert ist, bei mir jedoch nicht.
Es ist wichtig zu beachten, dass AllowOverride
nur in <Directory>
-Direktiven funktioniert und ignoriert wird, wenn es im Abschnitt <Location ...>
platziert wird. Das war mein Problem und ich brauchte eine schöne Fahrt.
Nur in Abschnitten verfügbar AllowOverrideList ist nur in Abschnitten gültig, die ohne reguläre Ausdrücke angegeben wurden, nicht in oder Abschnitten.
https://httpd.Apache.org/docs/2.4/mod/core.html#allowoverride
Dieser Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,R]
leitet http://example.com/test.php
zu http://example.com/index.php?url=test.php
um, wenn die Datei nicht existiert. Der einzige Unterschied zwischen meinem Code hier und deinem ist, dass ich [R] anstelle von [QSA, L] habe. Wenn es bei Ihnen immer noch nicht funktioniert und Sie die htaccess-Datei im Stammordner haben, glaube ich nicht, dass dies der Fall ist ein Htaccess-Datei-Problem