2012-09-19 33 views
2

试图将目录中的所有内容重定向到不同的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

我在做什么错?

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

任何帮助,非常感谢。

+0

欢迎的StackOverflow!我冒昧地以一些格式编辑你的文章 - 我建议你阅读[Markdown编辑帮助](http://stackoverflow.com/editing-help)或者看一看[当你写作时提供的格式参考问题](http://codinghorror.typepad.com/.a/6a0120a85dcdae970b0120a86e29f4970b-pi)。 –

回答

0

我认为它与L标志有关。

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

+0

但是在这之后没有其他规则。 –

0

你可以尝试使用mod_alias中代替:

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

这也将占到之类的东西abc.com/Diet Plans/xxx.pdf - >http://dietplans.example.com/xxx.pdf