mod_rewrite: Entferne den Schrägstrich (nur einen!)
Verwende ich mod_rewrite/.htaccess für pretty URLs.
Ich bin mit dieser Bedingung/Regel zu beseitigen Schrägstriche (oder besser: umschreiben die nicht-trailing-slash-URL, durch eine 301-Weiterleitung; ich Tue dies, um zu vermeiden, duplicate content, und weil ich, wie die URLs ohne Schrägstriche besser):
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{HTTP_HOST} !^\.localhost$ [NC] RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
Arbeiten gut so weit. Einziger Nachteil:
es auch nach vorne "multiple-trailing-slash"-URLs zu nicht-trailing-slash-URLs.
Beispiel:
http://example.tld/foo/bar//////
nach vorne zu http://example.tld/foo/bar
während ich will nur http://example.tld/foo/bar/
uns http://example.tld/foo/bar
.
So, ist es möglich, nur beseitigen Schrägstriche wenn es eigentlich nur eine trailing slash?
Sorry, wenn dies ist ein wenig ärgerlich oder komisch Frage!
Dank.
InformationsquelleAutor der Frage user367217 | 2010-06-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
folgende Regel passen auf jede URL endet mit einem Schrägstrich, und entfernen Sie alle Schrägstriche vom Ende:
Hinweis: Das derzeit akzeptierte Antwort funktioniert nur bei http nicht https, aber dieses funktioniert für beide.
InformationsquelleAutor der Antwort aleemb
änderung der rewrite-Regel zu:
in Englisch: match am Anfang einer Zeichenkette, eine oder mehr nichts, NICHT einen Schrägstrich ein Schrägstrich, am Ende.
InformationsquelleAutor der Antwort Jon
I. e. die forelast Zeichen darf nicht mit einem Schrägstrich.
InformationsquelleAutor der Antwort Sjoerd
Hier ist ein mod-alias-basierte Lösung zu entfernen trailing slash in urls :
Können Sie verwenden Sie die oben genannten Redirect in Ihre htaccess oder server.config-Datei.
Dieser leitet /uri/ */uri** .
InformationsquelleAutor der Antwort starkeen