我有两个域名,我们说example.com
和example.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
如何修改重定向语句?
答案 0 :(得分:3)
因此,您需要RewriteCond
以确保仅在请求的RewriteRule
为HTTP_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