【问题标题】:.htaccess from http and www to https non www.htaccess 从 http 和 www 到 https 非 www
【发布时间】:2017-09-22 10:42:45
【问题描述】:

在我的网站 URL 的四种可能变体中,我想重定向到 https://example.com(https:// 非 www)。

我的 .htaccess 文件包含以下内容:

RewriteEngine On

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

# ensure https
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这会从 http:// 重定向到 https://,但不会从 www 重定向到非 www

非常感谢任何帮助。

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    让你的第一条规则像这样通用:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^(.*?)/?$ https://%1/$1 [L,R=301,NE]
    
    # ensure https
    RewriteCond %{HTTP:X-Forwarded-Proto} !https 
    RewriteCond %{HTTPS} !on
    RewriteRule ^(.*?)/?$ https://%1/$1 [L,R=301,NE]
    

    确保在测试此更改之前清除浏览器缓存。

    【讨论】:

    • 几乎,但现在它不会将尾部斜杠重定向到非尾部斜杠页面?即“example.com/abc”到“example.com/abc”。
    • 抱歉我没有写,因为它已经在工作了,我没有看到其他更改会如何影响它。您更新的规则仍然不会重定向到非斜杠版本,但我会单独问这个问题。
    猜你喜欢
    • 1970-01-01
    • 2013-04-22
    • 2014-12-16
    • 2017-12-28
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    相关资源
    最近更新 更多