【问题标题】:How to redirect HTTPS non-www to HTTPS www using .htaccess?如何使用 .htaccess 将 HTTPS 非 www 重定向到 HTTPS www?
【发布时间】:2016-12-26 18:56:38
【问题描述】:

当我在https://example.com 访问我的网站时,我的浏览器会响应 ERR_CONNECTION_REFUSED。请注意,以下所有工作:

如何使用 .htaccess 将 https://example.com 请求重定向到 https://www.example.com

我尝试了以下似乎不起作用的方法:

// .htaccess

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]    
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301] 

【问题讨论】:

    标签: apache .htaccess redirect mod-rewrite


    【解决方案1】:

    您的规则是在两个条件之间使用AND 操作,但您是OR

    您可以使用此规则来强制执行wwwhttps

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
    

    确保在测试前清除浏览器缓存。


    编辑:根据下面的 cmets 仅用于 https://example.com to https://www.example.com 重定向,您可以使用此规则:

    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
    

    【讨论】:

    • 我试过了,但我认为它与 httpd.conf 中的现有规则冲突。只有当请求是https://example.com时,有没有办法重定向到www?
    • 如果原始 URL 是 http://www.example.com,你不需要是 https://www.example.com。顺便说一句,您也可以在 httpd.conf 中使用此规则,只需记住每次重新启动 Apache 并清除浏览器缓存(或使用 curl 命令行进行测试)
    • 感谢@anubhava 的建议。 http://www.example.com 已经重定向到 https://www.example.com。只有https://example.comhttps://www.example.com 需要处理。
    • 是的,我知道其他重定向对您有用,但我的规则应该替换您已有的所有 wwwhttp->https 规则+代码。原因是多次 301 重定向会损害您的 SEO 并减慢您的客户速度。
    • 我明白了!谢谢你的建议:)
    【解决方案2】:

    您拥有的规则应该按原样工作。

    来自ERR_CONNECTION_REFUSED,我猜 Apache 没有监听 https (443) 端口。

    但由于其他一切正常,即使是从 http://example.com 重定向到 https://www.example.com,也可能存在其他一些与网络相关的问题,例如防火墙配置允许 https 通过 www.example.com,但通过 example.com 阻止。您应该咨询您的服务器提供商。

    【讨论】:

    • 感谢您的了解。我会检查的!
    【解决方案3】:

    使用 https 的非 www 到 www

    RewriteCond %{HTTP_HOST} !^www\. [OR]
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
    RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]
    

    【讨论】:

    • 无法将“https://”重定向到“https://www”,请修改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 2017-05-03
    • 2010-12-01
    • 2018-07-03
    • 1970-01-01
    • 2014-07-26
    相关资源
    最近更新 更多