Ich möchte (301) alle URLs ohne .html zu .html umleiten. Beispiel:URL auf URL ohne HTML endend schreiben (.html)
example.com/site umgeleitet werden soll
ich example.com/site.html folgendes versucht:
RewriteRule (.+)$ /$1.html [L,R=301]
Ich möchte (301) alle URLs ohne .html zu .html umleiten. Beispiel:URL auf URL ohne HTML endend schreiben (.html)
example.com/site umgeleitet werden soll
ich example.com/site.html folgendes versucht:
RewriteRule (.+)$ /$1.html [L,R=301]
Ihre Regel ist wahrscheinlich ein verursachen Redirect-Schleife, weil sie die URL neu schreiben würde, selbst nachdem sie bereits umgeleitet wurde. In Ihrem Muster müssen Sie sicherstellen, dass die URL nicht bereits mit .html
endet.
Sie könnten eine negierte Muster verwenden diese zu erreichen:
RewriteRule !\.html$ %{REQUEST_URI}.html [L,R=301]
Alternativ, wenn Sie möchten, das für leere Pfade (wie in Ihrem Beispiel) nicht anwenden oder müssen die Spiele Ihrer Muster wiederverwenden
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule (.+)$ $1.html [L,R=301]
Beachten Sie, dass dies ist ein sehr einfaches Beispiel, das funktioniert nur für den genauen Fall, dass Sie beschrieben:, könnten Sie ein RewriteCondition verwenden. Dies würde auch URLs umschreiben, die mit .htm
bis .htm.html
enden, was vielleicht nicht das ist, was Sie wollen.