使用.htaccess将所有非www重定向到www和https的www

时间:2014-02-05 20:35:06

标签: regex apache .htaccess mod-rewrite redirect

我想将所有非www重定向到www - 如果请求是通过http,它应该重定向到http://www.domain.com,如果请求是通过https然后直接转到https://www.domain.com

我在.htaccess中尝试了以下内容,但它将所有内容重定向到https

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301

我已经使用了这段代码并且它完美地解析了。请检查它是否正确。

RewriteEngine On
RewriteBase /
#Redirect non-www to www

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.pnrstatusbuzz.in/%{REQUEST_URI}

1 个答案:

答案 0 :(得分:5)

您可以将此规则用作第一条规则

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]