.htaccess没有将网站重定向到https

时间:2015-06-02 00:01:24

标签: .htaccess ssl centos

我在Centos 6.6上运行Apache / 2.2.15并使用StartCom的免费证书。我的主页文件是/var/www/index.php,所以我按照建议here创建了一个包含以下内容的文件/var/www/.htaccess。

RewriteEngine On
# This will enable the Rewrite capabilities

RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
# This rule will redirect users from their original location, to the same location but using HTTPS.
# i.e.  http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in httpd.conf
# or .htaccess context

但是,输入

myWebSite.com
URL框中的

在http协议中显示我的网站。如果我输入

https://myWebSite.com

相反,我用https协议获取我的网站。我的目标是只需输入

即可将我的网站设置为https协议
myWebSite.com

我无法理解为什么.htaccess文件没有影响到它。

1 个答案:

答案 0 :(得分:1)

您的.htaccess文件似乎没有被读取。因此,请确保您的配置中包含$

同样对于你的规则,我不会使用AllowOverride All,这并不总是设置,有时不正确。我会使用SERVER_NAME变量或您的实际域名。您还应该为您的重定向指定HTTP_HOST因为没有它301是默认值。您希望这是永久重定向。

302

我也将它删除了RewriteEngine On # This will enable the Rewrite capabilities RewriteCond %{HTTPS} !^on [OR] # This checks to make sure the connection is not already HTTPS RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] RewriteRule ^/?(.*)$ https://example.com/$1 [R=301,L] ,因为你没有显示你正在使用它。