2009-05-20 21 views
0

Ich versuche, die URL mit dem mod_rewrite Apache-Modul neu zu schreiben. Ich versuche, es zu verwenden, wie unten:URL-Rewrite mit mod_rewrite in .htaccess

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^wants/testing.htm wants.php?wantid=$1 [L] 

ich geschaffen habe eine .htaccess-Datei im Verzeichnis, von wo aus auf die Dateien zugegriffen werden.

Der mod_rewrite ist ebenfalls aktiviert. Mit all diesen getan, ich habe immer noch nicht in der Lage, es zum Laufen zu bringen.

Kann mir bitte jemand dabei helfen? Bitte lassen Sie mich wissen, wenn ich bin etwas fehlt

Vielen Dank im Voraus, Gnanesh

+0

Was genau funktioniert nicht für Sie? Wie können Sie erwarten, dass die URL neu geschrieben wird und wo möchten Sie den Parameter wantid extrahieren? – duckyflip

+0

Die URL zeigt mydomain.com/wants.php?wantid=123. Ich muss es aussehen wie mydomain.com/wants/123 – gnanesh

+0

Was ist die Referenz $ 1? –

Antwort

0

Ich denke, ein führender Schrägstrich (oder vielmehr der Mangel davon) yoru Problem sein könnte:

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^wants/testing.htm /wants.php?wantid=$1 [L] 

Ansonsten Apache könnte suche nach der PHP-Datei in /wants/wants.php, da diese als relative URL behandelt wird.

+0

^/wills/testing.htm /wants.php?wantid=$1 [L] – SpliFF

+0

@SpliFF nein, das ist für .conf-Dateien nicht .htaccess – Greg

2

Wie pro OP Kommentar:

Die URL zeigt mydomain.com/wants.php?wantid=123. Ich müssen, um es wie mydomain.com/wants/123

Dies sollte für Ihren Fall arbeiten aussehen:

RewriteEngine on 
RewriteBase/
RewriteRule ^wants/([0-9]+)$ /wants.php?wantid=$1 [L] 

Es Sie http://yoursite.com/wants/123 und wird still, es benutzen können umschreiben zu wants.php? willid = 123

0

Hmm, also habe ich es ein paar Gedanken und ich denke, Sie könnten so etwas tun (nur die Regexp acco geändert rding auf Ihren Kommentar, wenn ich mich richtig) verstanden:

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^wants/\d+$ /wants.php?wantid=$1 [L] 

Aber ich denke, Sie auch die $ 1-Referenz auslassen können, und noch in der Lage sein, die ID in Ihrem wants.php zuzugreifen. So

RewriteRule ^wants/\d+$ /wants.php [L] 

sollte auch funktionieren, und Sie können dann so etwas wie

in Ihrem wants.php verwenden, wo das letzte Element des Arrays Ihre ID sein würde (oder etwas anderes entscheiden Sie jemals neu zu schreiben und an das Skript senden).

0

Wenn Sie die Regel in der .htaccess-Datei in Ihrem Verzeichnis verwenden möchten, müssen Sie den Kontext wants/ vom Anfang des Musters abziehen. Also einfach:

RewriteEngine on 
RewriteRule ^([0-9]+)$ /wants.php?wantid=$1 [L] 

Andernfalls, wenn Sie die Regel in der verwenden möchten.htaccess-Datei in Ihrem Stammverzeichnis:

RewriteEngine on 
RewriteRule ^wants/([0-9]+)$ wants.php?wantid=$1 [L] 
Verwandte Themen