将https重定向到http以及将domain.com重定向到www.domain.com

时间:2012-08-27 18:51:28

标签: regex .htaccess redirect http-status-code-301

我正在尝试进行一些重定向,其中https重定向到http以及输入domain.com的任何实例都重定向到www.domain.com。

一个实际的例子是https://domain.com被重定向到http://www.domain.com - 下面是我在.htaccess文件中使用的正则表达式代码。非常感谢你帮助澄清。

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} 
RewriteCond %{HTTP_HOST} ^domain.com [NC, OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

2 个答案:

答案 0 :(得分:1)

你走在正确的轨道上,只需稍微调整你的规则:

RewriteEngine on

# we handle to domain.com to www.domain.com first
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# then we redirect anything with HTTPS to just HTTP
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

答案 1 :(得分:-1)

这适用于HTTPS

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}