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!

War es hilfreich?

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
scroll top