这是我当前的配置:
1.RewriteRule ^ india / 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=14重写为 http://www.domain.com/india/news.php工作正常。
规则2应该将http://www.domain.com/portal/india/stories/telugu.php?currentpage=p.no&topicid=14重写为http://www.domain.com/india/telugu.php?currentpage=p.no&topicid=14,但这不起作用。
显示未找到404。
这里p.no =数字数字
如果我需要详细说明我的问题,请告诉我。
答案 0 :(得分: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/
等网站上进行重写测试