从www.domain.com强制使用非www HTTPS

时间:2017-05-03 08:22:52

标签: apache .htaccess https

我在这里查看了几个主题,但如果存在www,似乎没有规则功能。我也尝试删除www,然后强制HTTPS。可能是一些我不理解htaccess的小错字很好找到。如果证书/网络服务器出现问题,我已联系托管服务。

我想要的是,当访问者在地址栏中写入www.domain.com时,也强制使用HTTPS。

RewriteEngine on

#Enable HSTS
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

#Go to non-www if www
#RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#Go to HTTPS it not already on
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#check that filename is not a directory
RewriteCond %{REQUEST_FILENAME} !-d
#check that its a regular file
RewriteCond %{REQUEST_FILENAME}\.php -f
#remove what comes after the dot from url
RewriteRule ^(.*)$ $1.php

#check that filename is not a directory
RewriteCond %{REQUEST_FILENAME} !-d
#check that its a regular file
RewriteCond %{REQUEST_FILENAME}\.html -f
#remove what comes after the dot from url
RewriteRule ^(.*)$ $1.html

1 个答案:

答案 0 :(得分:0)

问题是root用户和public_html都有.htaccess文件。我正在使用root中的那个,不知道public_html中有.htaccess。

现在删除root中的那个,这一切都完美无缺!感谢所有回复。