gpt4 book ai didi

apache - 使用 Apache mod_rewrite 检测空 REQUEST_URI 时出现问题

转载 作者:行者123 更新时间:2023-12-02 09:24:35 24 4
gpt4 key购买 nike

我正在使用如下重定向规则运行 Apache:

RewriteCond %{HTTP_HOST} ^1st-domain\.com
RewriteRule ^(.*)$ http://2nd-domain.com$1 [R=permanent,L]

这成功重定向 http://1st-domain.comhttp://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]

有什么建议吗?预先感谢您。

更新

  1. 空 REQUEST_URI:http://1st-domain.com
  2. 非空REQUEST_URI:http://1st-domain.com/something

第一条规则应将空 request_uri 定向到 3rd-domain.com,第二条规则应将非空 request_uri 定向到 2nd-domain.com

有用的花絮您可以使用以下代码片段打开 mod_rewrite 调试:

<IfModule mod_rewrite.c>
RewriteLog "/home/domain.com/logs/rewrite.log"
RewriteLogLevel 3
</IfModule>

非常有用的调试选项,我以前不知道。

最佳答案

这应该有效:

RewriteCond %{HTTP_HOST} ^1st-domain\.com
RewriteRule ^$ http://3rd-domain.com [R=permanent,L]

RewriteCond %{HTTP_HOST} ^1st-domain\.com
RewriteRule ^(.+)$ http://2nd-domain.com/$1 [R=permanent,L]

希望对你有帮助!

注意:httpd.conf 和 .htaccess 之间的 REQUEST_URI 略有不同,它以 httpd.conf 中的额外反斜杠开头。这意味着在 httpd.conf 中,第一个重写规则应该是 ^\/$,而不仅仅是 ^$

关于apache - 使用 Apache mod_rewrite 检测空 REQUEST_URI 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5684940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com