2009-03-02 5 views
6

Wie viele andere habe ich Probleme mit einige sehr einfache mod_rewriting in Apache.Mod schreiben Problem

Ich habe folgende in meinem .htaccess:

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^view/([0-9]+)/([0-9]+)$ view.php?advertId=$1&publisherId=$2 [NC,QSA,L] 

die angeblich/Ansicht übersetzen/4093/203 qs = val -> /view.php?advertId=4093 & publisherID = 203? qs = val

Jetzt funktioniert es, wenn es mit/View ... aufgerufen wird, aber wenn Kleinschreibung/Ansicht, leitet es auf die richtige Datei um, aber advertId und publisherId wird nicht in meinem PHP-Skript festgelegt Der Großbuchstabe des ersten Buchstabens und ich haben einfach keine Ahnung, was an dieser Front vor sich geht (ich habe dieses Verhalten getestet und beobachtet, indem ich einfach auf meinem v iew.php).

Wer weiß, warum das passiert?

Ich möchte kann info meinem Server hinzuzufügen, ist wie folgt:

Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0 

IE. Eine brandneue Debian-Debian-Installation mit Debian-Standardpaketen + php-mssql.

Antwort

10

MultiViews kann dieses Verhalten verursachen, das versucht, die Anforderung einer Siminar vorhandenen Datei zuzuordnen, bevor die Anforderung an mod_rewrite übergeben wird. Versuchen Sie, es zu deaktivieren:

Options -MultiViews 
+0

Bloody brilliant! Kann ich fragen, wie und warum? – kastermester

+0

'MultiViews' ist eine Kernfunktion, die vor mod_rewrite ausgeführt wird. Wenn 'MultiViews' aktiviert ist, versucht Apache, einen ähnlichen Dateinamen zu finden, dem der Anfragepfad zugeordnet werden kann. Also wird Ihre '/ view/...' auf '/ view.php/...' gemappt und dann an mod_rewrite übergeben, die dann keine Übereinstimmung findet. – Gumbo

+0

Ah ok, danke, danke für die Hilfe, habe mich viel Mühe gegeben, mit dem Umschreiben herumzualbern, was offensichtlich gar nichts half - deine Hilfe wird sehr geschätzt! :) – kastermester