我正在尝试将对我的根目录的所有请求永久重定向到另一个站点。除了根目录请求之外,我不希望重定向任何其他请求。
请求“http://www.example.com“应该到到”http://www.example2.com/blah“
我可以通过以下方式实现这个功能:
RewriteEngine 在 Rewriterule 上 ^/$http://www.example2.com/blah[左,右=301]
一切似乎都运行良好(除 root 之外的所有请求都不会被重定向)。除了某一特定类型的请求不起作用。
我有一个运行于“http://www.example.com/phpscript“
对该脚本的请求在 URL 中有一个额外的组件,例如“http://www.example.com/phpscript/blah“
我删除了 PHP 脚本中的 /blah 部分,并根据请求返回一个 gif 图像。这可能是我的问题根源。对我的上述重写规则来说,对此 URL 的请求不起作用。
有什么想法吗?提前致谢。
答案1
你可能想要
Rewriterule ^$ http://www.example2.com/blah [L,R=301]
(无斜线)
如果这不起作用,您应该尝试将其添加到您的 http 配置中(在配置中的某个地方,它在 htaccess 或虚拟主机级别不起作用)
RewriteLog /tmp/rewrite.log
RewriteLogLevel 9
这将逐行解释它尝试匹配什么正则表达式以及最终的决定是什么。
然后删除这些行,否则有一天你会发现你的磁盘空间并没有你想象的那么多……