【问题标题】:.htaccess not redirecting web site to https.htaccess 没有将网站重定向到 https
【发布时间】:2015-06-02 08:30:37
【问题描述】:

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

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 文件没有影响。

【问题讨论】:

  • 您确定您的 .htaccess 正在被读取吗?你的配置中有AllowOverride All 吗?
  • 解决了原来的问题。现在,当我输入 mywebsite.com 时,我得到“页面未正确重定向。Firefox 检测到服务器正在以永远不会完成的方式重定向此地址的请求。”我以前没有遇到这个问题。我的 .htaccess 文件有问题吗?谢谢,
  • 您在尝试我的答案之前或之后是否出现此错误?
  • 之后。 RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R=301,L] 似乎有问题。如果我发表评论,我不会遇到问题,但在这种情况下,我也不会得到任何重定向。谢谢,
  • 您尝试清除缓存了吗?或者在其他浏览器中尝试,或者更改为 302,这将删除缓存以查看重定向是否有效,然后您可以将其更改回来。

标签: .htaccess ssl centos


【解决方案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]

我也做了它会删除www,因为你没有表明你正在使用它。

【讨论】:

    猜你喜欢
    • 2018-01-21
    • 1970-01-01
    • 2017-08-21
    • 2017-09-21
    • 2022-08-02
    • 2019-09-07
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多