我有一个页面
domain.com/project/all /
我想重定向到
domain.com/tasks/all /
但是在重定向之后,我需要它来应用mod_rewrite来控制一些分页查询字符串元素。
所以domain.com/tasks/all/1/ etc
我有这个
RewriteRule ^projects/all(.*)$ /tasks/all$1 [R=301,NC]
RewriteRule ^tasks/all([/]*)([0-9]*)([/]*)$ /project-results.php?page=$2 [L]
但是这似乎不像我期望的那样工作(即明显地将用户重定向到任务然后应用第二个规则)。
任何想法我做错了什么?
答案 0 :(得分:0)
您需要在第一条规则中添加L
标记:
RewriteRule ^projects/all(.*)$ /tasks/all$1 [R=301,NC,L]
RewriteRule ^tasks/all([/]*)([0-9]*)([/]*)$ /project-results.php?page=$2 [L]
否则,应用第一个规则,将URI更改为/tasks/all/...
,并为外部重定向标记请求。然后第二个规则也会被应用,因为URI已经更改,因此它会再次更改,但第一个规则已经标记了它以进行外部重定向。因此,您将被重定向到第二个规则所针对的目标。