使用 htaccess 将多个域(http https www 和非 www)重定向到新域
Redirect multiple domains (http https www & non-www) to a new domain using htaccess
我有 3 个不同的域(有两个不同的 TLD),我希望我的所有域都重定向到一个(包括所有格式的 http https www 或非 www)-> https://www.newdomain.com
我所有的域:
http://olddomain.net
http://www.olddomain.net
https://olddomain.net
https://www.olddomain.net
http://olddomain2.com
http://www.olddomain2.com
https://olddomain2.com
https://www.olddomain2.com
http://newdomain.com
http://www.newdomain.com
https://newdomain.com
https://www.newdomain.com
因此所有这些域都必须重定向到:https://www.newdomain.com
我已经尝试过许多不同的 htaccess 配置,但我没有处理所有的重定向。到目前为止我发现了什么:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain\.net$ [OR]
RewriteCond %{HTTP_HOST} ^olddomain2\.com$ [OR]
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.newdomain.com/ [L,NE,R=301]
但它并不能处理所有的变化。我认为这让 Google 机器人感到困惑,因为我的新主要 url 没有被编入索引。
如何修改我的 htaccess 以便它处理所有可能性?
根据您显示的示例,您能否尝试以下操作。请确保在检查您的 URL 之前清除浏览器缓存。如果您的 HTTP_HOST
不等于您的新域,我会检查条件,但我担心它也会触及您不想重定向到新域的其他域。
RewriteEngine ON
RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain\.net [NC]
RewriteRule ^ https://www.newdomain.com%{REQUEST_URI} [NE,R=301,L]
RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain2\.com [NC]
RewriteRule ^ https://www.newdomain.com%{REQUEST_URI} [NE,R=301,L]
可以使用这样的单一重定向规则来完成:
RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.newdomain\.com$ [NC]
RewriteRule ^ https://www.newdomain.com%{REQUEST_URI} [NE,R=301,L]
我有 3 个不同的域(有两个不同的 TLD),我希望我的所有域都重定向到一个(包括所有格式的 http https www 或非 www)-> https://www.newdomain.com
我所有的域:
http://olddomain.net
http://www.olddomain.net
https://olddomain.net
https://www.olddomain.net
http://olddomain2.com
http://www.olddomain2.com
https://olddomain2.com
https://www.olddomain2.com
http://newdomain.com
http://www.newdomain.com
https://newdomain.com
https://www.newdomain.com
因此所有这些域都必须重定向到:https://www.newdomain.com
我已经尝试过许多不同的 htaccess 配置,但我没有处理所有的重定向。到目前为止我发现了什么:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain\.net$ [OR]
RewriteCond %{HTTP_HOST} ^olddomain2\.com$ [OR]
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.newdomain.com/ [L,NE,R=301]
但它并不能处理所有的变化。我认为这让 Google 机器人感到困惑,因为我的新主要 url 没有被编入索引。
如何修改我的 htaccess 以便它处理所有可能性?
根据您显示的示例,您能否尝试以下操作。请确保在检查您的 URL 之前清除浏览器缓存。如果您的 HTTP_HOST
不等于您的新域,我会检查条件,但我担心它也会触及您不想重定向到新域的其他域。
RewriteEngine ON
RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain\.net [NC]
RewriteRule ^ https://www.newdomain.com%{REQUEST_URI} [NE,R=301,L]
RewriteCond %{HTTP_HOST} ^(?:www\.)?olddomain2\.com [NC]
RewriteRule ^ https://www.newdomain.com%{REQUEST_URI} [NE,R=301,L]
可以使用这样的单一重定向规则来完成:
RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.newdomain\.com$ [NC]
RewriteRule ^ https://www.newdomain.com%{REQUEST_URI} [NE,R=301,L]