我想将我的域名http重定向到https,我已经使用下面提到的代码
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ https www.domain.com/$1 [L,R=301,NC]
当用户输入domain.com时,它会自动重定向到https www.domain.com但是当用户只输入www.domain.com时,它会重定向到http www.domain.com
请帮我解决这个问题。
答案 0 :(得分:0)
您可以使用:
cdef
答案 1 :(得分:0)
在你的代码中:
RewriteCond %{HTTP_HOST} ^domain.com [NC]
这是以下规则的条件;因此该规则仅适用于无www
请求。
此外,在测试新代码时,请不要使用R=301
重定向,除非您确保规则正常,并且可以使用R=302
或R
。
无论您的代码如何将以下代码放在主目录.htaccess
:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
如果您想强制每个请求www
,您应该这样做:
RewriteEngine On
RewriteCond %{HTTPS} !=on
#this line above will match any request without `https`
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
#the two lines above will exclude none `www` request and force only `www` request unto `https` and the rule will stop here `L`
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R]
# the last two line will exclude any `www` request and force only none `www` into `https`