我试图阻止 xyz.com 出现在浏览器地址栏中,但仍将 abc.com 流量定向到 xyz.com 站点。一旦我从 [QSA, L] 中删除了“R”,我就预计会发生这种情况。然而,似乎没有任何变化。我应该使用不同的 HTTP 标头或连接变量吗?
rewritecond %{HTTP_HOST} ^(www\.)?abc\.com$ [NC]
rewriterule ^ http://xyz.com/?snack [QSA,L]
我试图阻止 xyz.com 出现在浏览器地址栏中,但仍将 abc.com 流量定向到 xyz.com 站点。一旦我从 [QSA, L] 中删除了“R”,我就预计会发生这种情况。然而,似乎没有任何变化。我应该使用不同的 HTTP 标头或连接变量吗?
rewritecond %{HTTP_HOST} ^(www\.)?abc\.com$ [NC]
rewriterule ^ http://xyz.com/?snack [QSA,L]
这是人们心中的一个大困惑,即通过删除R
标志 URL 将永远不会改变,它将保持内部(静默)转发。
事实是,如果您在目标 URL 中更改域名(通过使用http://
等),那么 URL将会更改并且它将是一个external redirect
.
无 URL 更改(内部重写):
RewriteCond %{HTTP_HOST} ^(www\.)?abc\.com$ [NC]
RewriteRule ^foo/?$ /?snack [QSA,L]
URL 将更改(外部重定向):
RewriteCond %{HTTP_HOST} ^(www\.)?abc\.com$ [NC]
RewriteRule ^foo/?$ ttp://xyz.com/?snack [QSA,L]
PS:在转到不同的域时避免 URL 更改的唯一方法是使用mod_proxy
被认为有点安全风险的方法。