2009-05-21 125 views
0

我希望有我的網站的URL看起來像的.htaccess mod_rewrite的與變量

http://example.com/place/info?var=info&morevars=ifneeded 

廣場和信息也是變量,但他們有一個固定的名字,那些後會改變播放。 編輯這是我試圖重寫URL

http://example.com/test.php?place=test&action=info&var=info&morevars=ifneeded 

這是我迄今爲止

RewriteEngine on 

RewriteRule ^([A-Za-z0-9-]+)/?$ test.php?place=$1 [NC] 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ test.php?place=$1&action=$2 [NC] 

我覺得有一種用{} QUERY_STRING要做到這一點,但我不能讓它只能運行500次錯誤,或者它沒有區別。

回答

1

您已設置自動將原來的請求的查詢到一個新的QSA flag

RewriteEngine on 
RewriteRule ^([A-Za-z0-9-]+)/?$ test.php?place=$1 [NC,QSA] 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ test.php?place=$1&action=$2 [NC,QSA] 
0

你錯過了第一/

RewriteEngine on 

RewriteRule ^/([A-Za-z0-9-]+)/ test2.php?place=$1 [NC] 
RewriteRule ^/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/ test2.php?place=$1&action=$2 [NC] 
+0

這沒有得到第一變量地點和信息,其重寫的網址是http://example.com/test2.php?place=test&action=info&var=info&morevars=ifneeded – Scott 2009-05-21 13:37:18

+0

只有當您想要在服務器中使用規則時才需要使用前導斜槓,或者虛擬主機配置。在.htaccess中,在測試規則之前,將刪除上下文每個目錄前綴。 – Gumbo 2009-05-21 13:58:41