【问题标题】:Forcing all users to go through SSL with .htaccess使用 .htaccess 强制所有用户通过 SSL
【发布时间】:2015-09-22 02:56:01
【问题描述】:

我刚刚在我的网站上安装了 SSL 证书,但是当我试图强制所有用户通过安全 SSL (HTTPS) 而不是 HTTP 时,我遇到了一个问题。我发现实现它的方法是在 .htaccess 上使用下面的代码

#Force SSL on entire site
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R,L]

到目前为止,它不起作用,我收到重定向循环错误。

它正在重定向到 SSL URL,但不起作用.. 没有 .htaccess 规则,当我手动输入 https://example.com 时它可以工作

【问题讨论】:

  • 除此之外,.htaccess 中是否还有其他规则,或者其他文件夹中的任何其他 .htaccess 文件,例如重定向?另外,是否已为其更新并传播了 DNS?
  • @Fred-ii-, 不是我刚刚在cPanel上搜索的,在主目录中只找到了1个.htaccess文件。
  • 检查您的 SSL 管理器,看看那里是否有任何关于更新 DNS 的消息。我最近刚刚经历了类似的事情。证书也已正确安装,对吗?也请联系您的房东。
  • 我正在使用 CloudFlare 灵活 SSL 证书,我想我对此无能为力。
  • 通过support.cloudflare.com/hc/en-ussupport.cloudflare.com/hc/en-us/categories/200276237 如果您还没有。可能是关于那个的。或者,如果您有一些带有任何标头重定向的 PHP,那也有可能;很难说。我希望我能进一步帮助你,但那是关于我在这方面的知识范围。

标签: php apache .htaccess mod-rewrite ssl


【解决方案1】:

我不知道这是否适合你,但我对我的网站做同样的事情,这是我的.htaccess 文件中的代码。我确定我是从 Stack Overflow 上的某个地方得到的。

<IFModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</IFModule>

【讨论】:

  • 我试过了,还是不行,还是一样的问题,谢谢。
【解决方案2】:

试试这个:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

应该可以正常工作...

【讨论】:

    猜你喜欢
    • 2012-04-22
    • 2013-04-28
    • 1970-01-01
    • 2013-01-31
    • 2017-08-22
    • 2023-03-27
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多