0

这是我当前的配置:

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 = 数字

如果我需要详细说明我的问题,请告诉我。

4

1 回答 1

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/之类的网站上进行重写之前对其进行测试

于 2013-08-02T13:48:01.597 回答