Extensionless URL ein trailing slash umleiten

Getestet hab ich den code unten, auf dem mehrere domains gehostet werden Dreamhost und es funktioniert—außer auf neuere domains die ich Hinzugefügt habe innerhalb des letzten Jahres.

RewriteEngine on

#unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1 [R=301,L]

#redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.*)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.*)\.php$ $1 [R=301,L]

#resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

Beispiel, das funktioniert:

ryanvanetten.com/resources/lame/ und ryanvanetten.com/resources/lame.php beide Umleitung zu ryanvanetten.com/resources/lame
und die eigentliche Datei, die serviert wird, ist lame.php

gebrochen Beispiel:

airve.com/test/file richtig serviert file.php aber der leitet airve.com/test/file/ und airve.com/test/file.php nicht funktionieren. Probieren Sie es und Sie werden sehen, Sie scheinen zu sein, spuckt die interne absoluten Pfad. Dasselbe geschah, als ich versuchte, jede der Umleitungen unabhängig und als ich versuchte, die grundlegenden umleiten unten.

Redirect 301 /test/file//test/file

Hier gibt es nichts .htaccess. Jede Idee, was das Problem ist?

InformationsquelleAutor ryanve | 2011-06-12
Schreibe einen Kommentar