我在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文件没有影响到它。
答案 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]
,因为你没有显示你正在使用它。