【问题标题】:HTTP to HTTPS redirect not working with .htaccessHTTP 到 HTTPS 重定向不适用于 .htaccess
【发布时间】:2018-12-23 10:36:02
【问题描述】:

我试图强制我的网站将 http 流量重定向到 https 网站,并且我已验证 htaccess 文件正在被访问,但重定向未发生。我有该站点的有效证书,并且 https 版本可以正常工作,但是无论我输入 www.mywebsite.com 还是 http://www.mywebsite.com 或 website.com,我仍然会被带到 HTTP 版本。有什么建议?

.htaccess 文件

# Use PHP56
AddHandler application/x-httpd-php56 .php

# Always Redirect to HTTPS
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteCond %{HTTP_HOST} ^(www\.)?mywebsite\.com$ [NC]
RewriteRule ^$ https://mywebsite.com%{REQUEST_URI} [R=301,L]

【问题讨论】:

    标签: html .htaccess redirect https url-redirection


    【解决方案1】:

    我在我的网站上使用它,它重定向到 HTTPS 而不是 HTTP。这里也有很好的解释:Best Practice: 301 Redirect HTTP to HTTPS (Standard Domain)

    RewriteEngine On
    
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    【讨论】:

    • 我想通了,我的代码 sn-p 在错误的 htaccess 文件中,这就是它没有触发的原因。不过,我仍然会投票给你,因为你的回答让我仔细检查了所有内容并找出了我的错误!
    • 同样的事情发生在我身上。我在主机的根文件夹.htaccess 中添加了规则,但我必须将它添加到安装了wordpress 的www 文件夹中(在我的情况下)。谢谢!
    【解决方案2】:

    我已经通过添加这个代码sn-p解决了这个问题,确保它在文件.htaccess的开头:

    # Force HTTPS on all pages
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </IfModule>
    

    【讨论】:

      猜你喜欢
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      • 1970-01-01
      • 2012-10-20
      • 2017-07-18
      • 2012-11-02
      相关资源
      最近更新 更多