Rewrite hinzufügen eines trailing-slash, aber unabhängig von der domain?
Ich bin mit Apache und mod_rewrite, um URLs umschreiben für meine web-app. Sie können es hier sehen:
RewriteEngine On
RewriteBase /
# www. to non-www.
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# Redirect non-existant files so there's a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/[R=301,L]
# Send the URL to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]
Alle arbeiten gut, aber das problem ist der trailing-slash schreiben. Es funktioniert, wenn ich bin in der root der domain, sondern in meinem staging-Umgebung, ich bin mit dieser app in einem Unterverzeichnis. Ich bin das ändern der RewriteBase-Direktive einschließen, um das Unterverzeichnis oder die rewrite ausfällt.
Ich bin auf der Suche nach einer Lösung fügen Sie einen trailing slash an die URL - unabhängig davon, ob die app läuft auf dem root des Servers, ohne änderung der RewriteBase. Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach stochern und etwas Hilfe von @MortBM, sieht aus wie das unten funktioniert gut:
Zusammenfassung: entfernen der
RewriteBase
, und mit%{REQUEST_URI}
innerhalb des redirect haben es geschafft 🙂