Merkwürdiges mod_rewrite-Verhalten auf einigen Servern

25.01.2012 08:11 Uhr

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?

1 Antwort

#1

25.01.2012 21:55 Uhr

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.

Ähnliche Fragen



Datenschutzerklärung · Impressum