重写规则不能正确重定向

时间:2012-09-19 23:37:38

标签: mod-rewrite

尝试将目录的所有内容重定向到其他URL。 我有:

RewriteRule ^Diet\ Plans(.*)$ http://dietplans.example.com$1 [R=301,L]

通过以下方式调用:abc.com/Diet Plans 所有工作都按预期工作 - 转到重定向域的文档根目录

但如果我将其调用为:abc.com/Diet Plans/xxx.pdf 它仍然转到文档根目录而不是http://dietplans.example.com/xxx.pdf

我做错了什么?

我想要的是对“饮食计划”目录的任何引用,以重定向到新服务器中的相同位置,但没有“饮食计划”父目录组件。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我认为这与L旗有关。

这意味着停止处理规则集。在这种情况下,由于您要搜索任意数量的后续字符,因此将始终找到根域 。因此,所有处理都将停止。

答案 1 :(得分:0)

您可以尝试使用mod_alias:

Redirect 301 "/Diet Plans" http://dietplans.example.com

这也会考虑像abc.com/Diet Plans/xxx.pdf - >这样的内容。 http://dietplans.example.com/xxx.pdf