【问题标题】:Multiple Domain Variations Requiring Apache Site-wide 301 Redirects需要 Apache 站点范围的 301 重定向的多个域变体
【发布时间】:2016-11-07 13:47:58
【问题描述】:

所以我有一个网站,目前在 4 种变体下运行:

http://www.example.com/https://www.example.com

&

http://example.com/https://example.com

我正在研究一种解决方案,将所有变体重定向到: https://www.example.com

我已经阅读了很多关于如何使用 Apache 域 301 重定向来解决 http 到 https 的问题(似乎有很多公式),但是我想知道是否有更有效的代码来让所有这些变体 301 重定向到https://www。版本?

任何帮助都将不胜感激,因为我在服务器端 htaccess 语言等方面完全是菜鸟。

谢谢!

【问题讨论】:

    标签: apache .htaccess redirect mod-rewrite


    【解决方案1】:

    要重定向到https://www,您可以使用:

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

    【讨论】:

      【解决方案2】:

      您可以使用单个 301 重定向规则来完成这两个任务:

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

      【讨论】:

      • 您好阿努巴瓦,感谢您的帮助!这看起来像我所追求的。我可以请您解释一下每一行的作用以教育自己前进吗?
      • 前 2 个 RewriteCondOR 子句,这意味着此规则将对 http:// URL 或 non-www URL 执行。第三个RewriteCond 捕获可选www 之后的部分,在RewriteRule 我们在最终URL 中添加wwwhttps
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2021-02-03
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      相关资源
      最近更新 更多