htaccess:如何重定向然后使用mod_rewrite

时间:2014-10-20 14:23:14

标签: apache .htaccess mod-rewrite redirect

我有一个页面

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]

但是这似乎不像我期望的那样工作(即明显地将用户重定向到任务然后应用第二个规则)。

任何想法我做错了什么?

1 个答案:

答案 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已经更改,因此它会再次更改,但第一个规则已经标记了它以进行外部重定向。因此,您将被重定向到第二个规则所针对的目标。