/ / htaccess - Leite ALLES durch die PHP-Datei um - PHP, Apache, .htaccess, mod-rewrite, redirect

htaccess - Umleitung ALLES durch PHP-Datei - PHP, Apache, .htaccess, Mod-Rewrite, Redirect

RewriteEngine on
RewriteCond %{REQUEST_URI} !(.|/$)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api.php?url=$1 [L]

Oben ist meine aktuelle Konfiguration zu sehen.

Das Problem dabei ist, dass es nur umzuleiten scheint, wenn ein Verzeichnis oder eine Datei nach dem Ordner existiert, in dem sich die htaccess-Datei befindet.

Wie kann ich das umschreiben, damit es buchstäblich jede einzelne Anfrage an umleitet? api.php mit dem vollen angeforderten Pfad? Ich suche nicht, ob Verzeichnisse oder Dateien in der htaccess - Datei vorhanden sind, das kann ich in api.phpIch möchte nur alle Anfragen durch diese Datei pushen.

Antworten:

1 für die Antwort № 1

Sie können verwenden:

RewriteEngine on

RewriteCond %{REQUEST_URI} !(.|/$)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]

RewriteRule ^((?!api.php$).*)$ api.php?url=$1 [L,QSA,NC]

Schau voraus (?!api.php$) bedeutet, alles neu zu schreiben, außer /api.php zu /api.php mit Abfrageparameter url.


0 für die Antwort № 2

so was:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ /api.php?path=$1 [NC,L,QSA]

Stellen Sie sicher, dass Sie dies vor der Route haben

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d