Apache 使用htaccess将多个域(http https www和非www)重定向到新域
我有3个不同的域(具有两个不同的TLD),我希望我的所有域只重定向到一个域(包括所有格式的http https www或非www)->Apache 使用htaccess将多个域(http https www和非www)重定向到新域,apache,.htaccess,redirect,mod-rewrite,http-status-code-301,Apache,.htaccess,Redirect,Mod Rewrite,Http Status Code 301,我有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 htt
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/$1 [L,NE,R=301]
但它不能处理所有的变化。我认为这让谷歌机器人很困惑,因为我的新主url没有索引
如何修改我的htaccess,使其能够处理所有可能的问题?根据您展示的示例,请尝试以下内容。请确保在检查URL之前清除浏览器缓存。如果您的
HTTP\u主机
不等于您的新域,我会检查条件,但我担心它也会触及您不想重定向到新域的其他域
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]
可以使用以下单个重定向规则完成此操作:
重新编写引擎打开
重写cond%{HTTPS}!在[或]
重写cond%{HTTP_HOST}^www\.newdomain\.com$[NC]
重写规则^https://www.newdomain.com%{REQUEST_URI}[NE,R=301,L]
您是否有其他指向同一目录的域不受此影响?否则,我会改变逻辑-如果主机未www.newdomain.com
或HTTPS已关闭,则重定向。