提问者:小点点

.htaccess将裸http和https重定向到www https


我的一个域也有类似的问题。我为裸域和www域都安装了SSL证书。

现在,然而我想把裸体http://domain.com和https://domain.com都重定向到https://www.domain.com.

我在我的.htaccess中有这个规则,但当您使用https://domain.com,但是,当访问时http://domain.com,它重定向到http://www.domain.com相反https://www.domain.com.

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

共2个答案

匿名用户

我个人会这样安排,这将迫使万维网和HTTPs为一切。

RewriteEngine On

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

#Force HTTPS on everything
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

匿名用户

应将现有规则替换为以下规则:

RewriteEngine On

# add www and convert http to https
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

将此规则保留在“重写引擎在线”下方,并在测试前清除浏览器缓存。