2009-07-13 8 views
0

Ich versuche, eine Regel zu schreiben, dieGrund mod_rewrite Frage

xyz.com/hotels_in_someplace sagt, wird direkt

unter Verwendung der folgenden in meinem .htaccess xyz.com/test.php?place=someplace
RewriteEngine On 
RewriteBase/

RewriteRule ^hotels_in_([a-z]+)$ test.php?place=$1 [L] 

aber es funktioniert nicht und ich kann nicht herausfinden, warum, ich bin ein Wamp-Server als ein Entwickler laufen. Als ich versucht habe, xyz.com/test.php?place=someplace (ohne den htaccess im Verzeichnis) zu starten, funktioniert es, aber ich vermute, dass etwas meine Regel falsch ist.

zusätzlich: hoppla .... meine dummer Esel Fehler, mod_rewrite ist nicht aktiviert ...

+0

Wie genau funktioniert es nicht? –

+0

Haben Sie wirklich "RewriteEngine On RewriteBase /" auf einer Zeile? –

+0

Ich habe das auf meinem Server getestet und es funktioniert einwandfrei. –

Antwort

0

Update: Ich habe nicht bemerkt, die RewriteBase in der Frage vor, so mein Punkt über den führenden Schrägstrich ist null. Die RewriteRule funktioniert jedoch auf meinem Rechner.


Versuchen:

RewriteRule ^hotels_in_([a-z]+)$ /test.php?place=$1 [L] 

Der Weg zum test.php des führenden Schrägstrich muss. Die Art und Weise, wie Sie das Neuschreiben machen, werden Sie zu xyz.com/path/to/web/docs/on/machine/test.php umgeleitet und das ist nicht was Sie wollen. :)

Auch wenn Sie einen Schrägstrich in Ihrem Test enthalten.

Die obige Regel passt nicht xyz.com/hotels_in_someplace/.

den führenden Schrägstrich Passend dies funktionieren sollte:

RewriteRule ^hotels_in_([a-z]+)/?$ /test.php?place=$1 [L] 
1

Probieren Sie es ohne Ende-line Anker ($)

RewriteRule ^/hotels_in_([a-z]+) /test.php?place=$1 [L] 

Auch haben können Sie die .htaccess-Dateien analysiert werden ?

0

Ihr Beispiel funktioniert gut für mich. Vielleicht möchte ich ein paar kleine Anpassungen vornehmen (siehe mein Beispiel, das Großbuchstaben, Bindestriche und Unterstriche erfasst (für Hotels in Ländern mit mehr als einem Wort (United States, united_states)) und einen nachgestellten Schrägstrich).

RewriteRule ^hotels_in_([A-Za-z_-]*)(/?)$ /test.php?place=$1 

Hoffe, dass hilft.