【发布时间】:2011-08-06 19:06:42
【问题描述】:
我正在运行带有如下重定向规则的 Apache:
RewriteCond %{HTTP_HOST} ^1st-domain\.com
RewriteRule ^(.*)$ http://2nd-domain.com$1 [R=permanent,L]
这成功地将http://1st-domain.com 重定向到http://2nd-domain.com 但是,当 REQUEST_URI 为空时,我想重定向到第三个域。
RewriteCond %{HTTP_HOST} ^1st-domain\.com$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://3rd-domain.com$1 [R=permanent,L]
但这不起作用,而是重定向到 2nd-domain.com
我的规则是这样排列的:
RewriteCond %{HTTP_HOST} ^1st-domain\.com$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://3rd-domain.com$1 [R=permanent,L]
RewriteCond %{HTTP_HOST} ^1st-domain\.com
RewriteRule ^(.*)$ http://2nd-domain.com$1 [R=permanent,L]
有什么建议吗?提前谢谢你。
更新
- 空 REQUEST_URI:http://1st-domain.com
- 非空 REQUEST_URI:http://1st-domain.com/something
第一条规则应将空的 request_uri 指向 3rd-domain.com,第二条规则应将非空的 request_uri 指向 2nd-domain.com
有用的花絮 你可以用这个 sn-p 打开 mod_rewrite 调试:
<IfModule mod_rewrite.c>
RewriteLog "/home/domain.com/logs/rewrite.log"
RewriteLogLevel 3
</IfModule>
我不知道的非常有用的调试选项。
【问题讨论】:
-
REQUEST_URI 永远不会为空。
标签: apache url mod-rewrite url-rewriting