【问题标题】:How to redirect all website requests to HTTPS with no www如何将所有网站请求重定向到没有 www 的 HTTPS
【发布时间】:2015-04-17 04:48:21
【问题描述】:

我想让所有对我网站的请求都重定向到没有 www 的 HTTPS。现在我显然有我的网站的 www 和非 www 版本,这应该对 seo 不利(重复内容)。我还刚刚添加了一个 SSL 证书,需要将所有流量重定向到我网站的 https 版本。以下是我希望完成的示例:

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

如何在我的 htaccess 文件中完成此操作?

【问题讨论】:

  • 我刚刚尝试了以下两个答案,但它们似乎只适用于我的主页,否则我会收到 404 错误。我的网站建立在 codeigniter php 框架之上。似乎任何使用控制器的页面(例如 example.com/pages/somepage)都无法使用提供的代码。我该怎么做才能使用控制器使其与页面一起工作?

标签: .htaccess redirect ssl https


【解决方案1】:

这些规则需要位于文档根目录中 htaccess 文件的顶部

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

【讨论】:

    【解决方案2】:

    试试这个:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteCond %{HTTPS_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
    </IfModule>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 2015-09-30
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      相关资源
      最近更新 更多