【问题标题】:How to force https and www. in .htaccess?如何强制 https 和 www。在.htaccess 中?
【发布时间】:2023-03-11 23:10:02
【问题描述】:

com我尝试在 .htaccess 中使用以下代码来强制使用 https 和 www。因为我总是想要一个像https://www.domain.com这样的网址

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

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^.*domain\.com$ [NC]
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [R=301,L]

如果我在浏览器中输入这些情况,它可以正常工作:

www.domain.com
domain.com
http://www.domain.com
http://domain.com

但如果我输入以下行 - 不会发生转发:

https://domain.com

我该如何解决这个问题?

【问题讨论】:

    标签: .htaccess mod-rewrite https


    【解决方案1】:

    所有重定向都需要这两条规则:

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

    【讨论】:

    • 抱歉,覆盖我的原始域时出错(它以 .biz 结尾)。对于此示例,它只是 domain.com - 请参阅已编辑的问题。
    • 同样的问题。一切正常,但如果我输入 https:// 而没有 www。结果是https://domain.com
    • 检查更新的规则并确保在新的浏览器中测试
    • 我在新的浏览器中尝试了新代码并清除了缓存。还是同样的问题。
    • 这些规则是正确的,你可以看到https://domain.com 将被重定向到上面第二条规则中的https://www.domain.com。您还有其他一些规则或冲突代码。您可以打开 firebug 并在浏览器中输入 https://domain.com 以查看您在 Net 选项卡中获得的重定向。
    猜你喜欢
    • 2016-04-05
    • 1970-01-01
    • 2013-05-31
    • 2011-09-14
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    相关资源
    最近更新 更多