【问题标题】:http://www redirect to https://http://www 重定向到 https://
【发布时间】:2015-10-03 16:29:57
【问题描述】:

我已经尝试了几乎所有关于堆栈溢出的 .htaccess 示例,但均未成功。

我已经在我的网站上安装了 SSL 证书,并且网站上的所有页面都可以完美运行。我的问题是我的谷歌历史以及像 adwords 这样的东西有旧的 URL http://www.example.com。

我的新 SSL 域只是 http://example.com

所以我要做的就是确保任何传入http://www.example.com 的流量都转发到相同的网址,但https://example.com

我收到错误,例如域重定向不正确或更糟,http://www.example.com 重定向到不存在的 https://www.example.com。我试过这样的例子但没有成功:-

    RewriteCond %{HTTP_HOST} ^www\. [OR]
    RewriteCond %{HTTPS} !on
    RewriteRule ^ https://example.com/%{REQUEST_URI} [R=302,L]

或

RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} www\.
    RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301,NE]

很抱歉,如果您认为以前有人问过这个问题,但是我在网络上尝试了所有示例都没有成功。

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect ssl


    【解决方案1】:

    试试这个简单的规则作为第一条规则:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^www\. [NC]
    RewriteRule ^ https://example.com%{REQUEST_URI} [R=302,L]
    

    然后在 Chrome 开发工具中进行测试。

    【讨论】:

    • 您是否在 Chrome 开发工具中进行了测试?它显示了哪些 URL 重定向?
    • 我认为你可能是对的,我刚刚在谷歌浏览器中尝试过,它成功了!重新启动 Firefox,它现在可以工作了,这是来自第一个示例。
    • 如何在 chrome 开发工具中看到重定向?
    • 在Chrome开发工具中你可以点击Net标签,然后在浏览器中访问http://www.example.com。然后它将显示由于您的规则而发生的所有重定向。
    • 是的,检查更新的答案,/ 之前不需要%{REQUEST_URI}
    【解决方案2】:

    试试下面:

    RewriteEngine On
    RewriteCond %{HTTP_HOST}  ^www.yourdomain.com [nocase]
    RewriteRule ^(.*)         https://yourdomain.com/$1 [last,redirect=301]
    

    【讨论】:

      猜你喜欢
      • 2018-09-26
      • 2014-05-08
      • 2016-01-20
      • 1970-01-01
      • 2016-02-28
      • 2015-10-23
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      相关资源
      最近更新 更多