【问题标题】:Redirect to https not working with www重定向到 https 不适用于 www
【发布时间】:2018-05-24 05:20:29
【问题描述】:

我有一个名为 example.com 的域。

我想始终重定向到https://www.example.comhttps AND www)。

意思是:我需要重定向

https://example.com

http://www.example.com

http://example.com

https://www.example.com

这是我目前的代码:

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

这适用于:

https://example.com

http://example.com

但它不适用于:

http://www.example.com

我已经为此工作了一整天(这里是下午 4 点),但没有成功。

为什么?谁能给我一个提示?我做错了什么?

【问题讨论】:

    标签: .htaccess redirect mod-rewrite url-rewriting http-redirect


    【解决方案1】:

    您使用的规则仅将非 www 域重定向到 www 而不检查 https 标头。

    你可以用这个:

    RewriteEngine on
    
    #http to https with www
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^ https://www.example.com%{REQUEST_URI} [NC,L,R]
    #other rules
    RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$  [NC]
    RewriteRule !^web/ /web%{REQUEST_URI} [L,NC]
    

    这会将httpnon-www 重定向到https://www

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-07
      • 2014-07-31
      • 2017-07-12
      • 2018-12-12
      • 2022-01-11
      • 2020-05-22
      • 2012-06-09
      相关资源
      最近更新 更多