2013-08-02 43 views
0

這裏是我當前的配置:mod_rewrite的代碼檢查雙重寫規則

1.RewriteRule ^印度/ news.php /portal/india/stories/telugu.php??topicid=14

2 .RewriteRule^india/telugu.php?currentpage =([0-9] +)。 & topicid = 14 /portal/india/stories/telugu.php?currentpage=$1 & topicid = 14

規則1次重寫http://www.domain.com/portal/india/stories/telugu.php?topicid=14http://www.domain.com/india/news.php工作正常。

規則2應該重寫http://www.domain.com/portal/india/stories/telugu.php?currentpage=p.no&topicid=14http://www.domain.com/india/telugu.php?currentpage=p.no&topicid=14這是行不通的。

它顯示404找不到。

這裏p.no =數字號碼

如果我需要闡述我的問題,請讓我知道。

回答

0

RewriteRule使用正則表達式,所以有一個?在正則表達式中不是表示查詢字符串,而是作爲正則表達式鍵啓動。

此外RewriteRule真的只查看請求URI並忽略查詢字符串,除非您爲查詢字符串設置條件。

所以第2條應該是這樣的

RewriteCond %{QUERY_STRING} currentpage=([0-9]+).&topicid=14 
RewriteRule ^india/telugu.php /portal/india/stories/telugu.php?currentpage=%1&topicid=14 

請注意,在此設置你需要%1,而不是$ 1

我希望這可以幫助我有這個問題好幾次,這是我唯一的辦法就是讓它工作。你也可以測試重寫,然後在網站上進行測試,如http://martinmelin.se/rewrite-rule-tester/