Merkwürdiges mod_rewrite-Verhalten auf einigen Servern
Liebe Cosni-Community,
ich habe ein merkwürdiges Verhalten einer RewriteRule in der .htaccess, die ich mir partout nicht erklären kann. Vielleicht wisst ihr ja einen Rat.
Die Rule in der .htaccess lautet:
RewriteRule ^show\/(.+)$ show.php?page=$1 [L]
Ziel ist es, URL nach dem Schema von
http://www.domain.de/show/my-page
zu realisieren, die intern
http://www.domain.de/show.php?page=my-page
aufrufen. Soweit eigentlich nichts kompliziertes, schon hunderte mal gemacht und eigentlich immer funktioniert.
Nun habe ich aber auf einem Server den Fall, dass bei dieser Rule die folgende REQUEST_URI entsteht:
http://www.domain.de/show.php/mypage
So werden natürlich keine GET-Parameter übertragen.
Rausgefunden habe ich schon, dass es an der Überschneidung der Namen liegt: "show/..." und "show.php". Ändere ich nämlich den Namen des Scriptes und nehme folgende Rule, dann funktioniert es.
RewriteRule ^show\/(.+)$ page.php?page=$1 [L]
Aber warum funktioniert die erste Rule auf einigen Servern und auf anderen nicht?
bearbeitet am 26.01.2012
Antworten
Ich hatte mal ein ähnliches Problem, wo auf einem Apache-Webserver mod_speling aktiv war. Eventuell ist das bei Dir ja auch der Fall.
http://httpd.apache.org/docs/2.1/mod/mod_speling.html
Keine Ahnung wie jemand auf die Idee kommt, daß das sinnvoll sein könnte.
Deine Antwort
Bereits registriert? Bitte logge dich vor dem Antworten ein.

Von Usern veröffentlichte Inhalte stehen unter der
Verstehe den Sinn dieses Moduls auch nicht, das macht ja alle anderen Status-Codes obsolet und erschwert einfach nur das debugging ...
– martin am 26.01.2012Werde es testen, Danke!
– jkahn am 26.01.2012