Semantic URLs für statische HTML-Dateien mit .htaccess und mod_rewrite
-
26-09-2019 - |
Frage
mod_rewrite immer verwirrt mich ... kann mir jemand sagen, die Regeln Ich brauche die folgenden URLs sauber zu bekommen? Gewünschte URL auf der linke Seite, reale URL auf dem rechten Seite.
/our-work/ => /our-work.html
/our-work/some-project/ => /our-work/some-project.html
/contact/ => /contact.html
Wie Sie sehen können, möchte ich auch auf alle URLs folgende Schrägstriche erzwingen.
Danke!
Lösung
Versuchen Sie, diese Regel:
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]
Und für das Hinzufügen folgende Schrägstriche:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
Achten Sie darauf, diese Regeln zu setzen, dass Ursache eine externe Umleitung (explizit mit R Flag oder implizit) vor diesen Regeln, die nur Ursache eine interne Umleitung / Rewrite. Also in diesem Fall:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow