【问题标题】:redirecting https://domain.com to https://www.domain.com将 https://domain.com 重定向到 https://www.domain.com
【发布时间】:2015-06-12 08:00:04
【问题描述】:

我最近将我的网站移至 HTTPS,并试图将所有 http 流量强制到 https 以及 www。版本

即强制 https://domain.comhttps://www.domain.com

我的 htaccess 中有这个,除了从 https://domain.comhttps://www.domain.com 的重定向之外,所有 http 到 https 都可以使用

我做错了什么?

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

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    您需要一个OR 条件:

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

    【讨论】:

    • 太棒了!这行得通!非常感谢。我会尽快接受你的回答(在允许的情况下)
    • 我有问题。当我访问我网站的 www.domain.com 时,它现在重定向到 www.domain.com(注意 2 个 www. 部分)帮助?
    • 没关系,我已修复,我需要将 www.domain 添加到 RewriteRule ^domain.com%{REQUEST_URI} [R=301,L,NE] 部分 - 我使用的是 HTTP_HOST - 全部解决
    • @anubhava 嗨,这不适用于 https => "https:/www" 的情况。所有其他重写都很好。有什么解决办法吗?
    • 抱歉这个菜鸟问题,但是如果我的网站托管在 EC2 上并且注册商为 Namecheap,我应该在哪里添加它。
    【解决方案2】:
    RewriteEngine  on
    
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L,NE]
    
    

    使用上述规则https://example.com 没有重定向到https://www.example.com。 为此,我也在 apache ssl vhost 块中添加了以下规则

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多