如何强制.com域重定向到.tld

时间:2014-06-04 18:37:30

标签: .htaccess redirect

我有两个域名,我们说example.comexample.tld。但我希望用户始终进入.tld域。我想使用.htaccess并尝试过

RewriteEngine on
RewriteRule ^(.*)$ http://example.tld/$1 [R=301,L,QSA]

当我打开example.com时,它会重定向到example.tld。但是当我打开example.tld时出现错误

This webpage has a redirect loop

如何修改重定向语句?

1 个答案:

答案 0 :(得分:3)

因此,您需要RewriteCond以确保仅在请求的RewriteRuleHTTP_HOST时才应用后续example.com

RewriteEngine On
# Apply the rule if the host does not already match example.tld
RewriteCond %{HTTP_HOST} !^example\.tld$
RewriteRule (.*) http://example.tld/$1 [L,R=301,QSA]

请注意,使用[R]时,[QSA]已隐含。你实际上并不需要在这里添加它,但它并没有受到伤害。

以上内容会将<{1}}以外的任何域重定向到example.tld。如果您添加了第三个您不想重定向的域名(仅重定向example.tld),而不是example.com中的否定匹配,则可以仅为该域使用肯定匹配。

RewriteCond