【发布时间】:2017-05-07 13:09:23
【问题描述】:
关于将我的完整网站重定向到带有 www 且不带斜杠且在客户端是否位于代理服务器后面时有效的经典问题。我找到了 101 个部分解决方案,但它们让我很困惑,因为每个提议的解决方案上的 cmets 总是指示重定向无法运行的情况。我会很高兴有一个完整的解决方案
我最近为我的域 example.com 购买了 SSL 证书。根据我的信息,SSL 证书仅对 example.com 有效,对 www.example.com 无效,但我不完全确定。
我想要永久重定向到https://www。在所有情况下都没有斜杠并且在代理服务器后面是否有效:
- http://www.example.com 到 https://www.example.com
- http://www.example.com/ 到 https://www.example.com
- http://example.com 到 https://www.example.com
- http://example.com/ 到 https://www.example.com
- http://www.example.com/any-url 到 https://www.example.com/any-url
- http://www.example.com/any-url/ 到 https://www.example.com/any-url
- http://example.com/any-url 到 https://www.example.com/any-url
- 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