【问题标题】:Redirect complete website to https with www使用 www 将整个网站重定向到 https
【发布时间】:2017-05-07 13:09:23
【问题描述】:

关于将我的完整网站重定向到带有 www 且不带斜杠且在客户端是否位于代理服务器后面时有效的经典问题。我找到了 101 个部分解决方案,但它们让我很困惑,因为每个提议的解决方案上的 cmets 总是指示重定向无法运行的情况。我会很高兴有一个完整的解决方案

我最近为我的域 example.com 购买了 SSL 证书。根据我的信息,SSL 证书仅对 example.com 有效,对 www.example.com 无效,但我不完全确定。

我想要永久重定向到https://www。在所有情况下都没有斜杠并且在代理服务器后面是否有效:

  1. http://www.example.comhttps://www.example.com
  2. http://www.example.com/https://www.example.com
  3. http://example.comhttps://www.example.com
  4. http://example.com/https://www.example.com
  5. http://www.example.com/any-urlhttps://www.example.com/any-url
  6. http://www.example.com/any-url/https://www.example.com/any-url
  7. http://example.com/any-urlhttps://www.example.com/any-url
  8. http://example.com/any-url/https://www.example.com/any-url

此时,我的 htaccess 文件中只有从非 www 到 www 的重定向,用于我以前的 http:// 网站(对于没有 https:// 的网站正常运行):

# SEO URL Settings
RewriteEngine On
# redirect rules first
# Without www to www
RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

我必须添加什么或替换代码是什么?

非常感谢任何帮助! 问候, 萨宾

....

第一天之后我还没有收到任何建议,所以我可能会在今晚实现并测试以下代码,虽然我认为它不完整:

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

萨宾

【问题讨论】:

  • 首先,您需要知道您的新 SSL 是否包含 www.如果它没有任何你做的重定向将正常工作。它将显示一个警告页面,直到您也拥有 www 的有效证书。然后我们可以帮助制定规则。
  • 您好,我刚刚收到我的虚拟主机公司的确认,即我的 SSL 认证对 domain.com 和 www.domain.com 都有效。任何建议将不胜感激!

标签: php apache .htaccess redirect ssl


【解决方案1】:

你能在你的.htaccess中试试这个配置吗:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多