Regex .htaccess重定向到新域,www和非www以及https和非https的路径保持不变
基本上,我需要一个.htaccess文件,将所有流量重定向到我们的新域。它需要在以下条件下工作:Regex .htaccess重定向到新域,www和非www以及https和非https的路径保持不变,regex,apache,.htaccess,mod-rewrite,dns,Regex,Apache,.htaccess,Mod Rewrite,Dns,基本上,我需要一个.htaccess文件,将所有流量重定向到我们的新域。它需要在以下条件下工作: http://www.olddomain.com/path/file.php => http://www.newdomain.com/path/file.php https://www.olddomain.com/path/file.php => http://www.newdomain.com/path/file.php (注意,在上述情况下,https重定向到http-这不是问题)
http://www.olddomain.com/path/file.php => http://www.newdomain.com/path/file.php
https://www.olddomain.com/path/file.php => http://www.newdomain.com/path/file.php
(注意,在上述情况下,https重定向到http-这不是问题)
此外:
首先,我将https版本的www.olddomin.com重定向到http版本的www.olddomain.com
,然后再重定向到新域的http版本,这几乎可以让它工作了,我遇到的问题是的非www版本https://olddomain.com
它重定向到http://olddomain.com
然后停止
我使用的代码是:
RewriteEngine On
RewriteBase /
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
除了https://olddomain.com/path/file.php
只需重定向到http://olddomain/path/file.php
并停止,不会重定向到http://newdomain.com/path/file.php
任何帮助都将不胜感激。您只需在olddomain的
文档\u ROOT/.htaccess
文件中使用此单一规则即可:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteRule ^ http://%1newdomain.com%{REQUEST_URI} [R=301,L,NE]
说明:
-忽略大小写NC
-最后一个L
-将R=301
状态发送到浏览器301
-禁止转义NE
-是我们在%1
的第一个RewriteCond
中捕获的值。这将是(…)
或空白www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteRule ^ http://%1newdomain.com%{REQUEST_URI} [R=301,L,NE]