【问题标题】:Force SSL on your website using .htaccess and Forcing the "www." at the beginning of URLs使用 .htaccess 在您的网站上强制使用 SSL 并强制使用“www”。在 URL 的开头
【发布时间】:2013-09-21 06:12:51
【问题描述】:

我正在使用此代码,它成功强制使用 ssl:

RewriteEngine On
RewriteCond %{HTTP_HOST} www\.example\.com
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

但它不会强制在网址开头使用 www。我在这里的另一个页面上发布了这个假定的解决方案:

RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

RewriteCond %{ENV:HTTPS} on [NC]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

但是当我尝试打开我的页面时得到的是:“Firefox 检测到服务器正在以永远不会完成的方式重定向对该地址的请求。”

我该如何解决这个问题,即不仅要强制 ssl,还要在 url 的开头强制 www?

谢谢。

【问题讨论】:

    标签: apache .htaccess ssl web https


    【解决方案1】:

    试试:

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

    【讨论】:

    • 感谢您的回复,但是 example.com 并未重定向到 example.com,而是重定向到此 example.com。我需要一个强制“www”的解决方案。在 ssl URL 的开头。
    • @MichelMzer 还有其他原因导致重定向。这些规则不可能重定向到不以www. 开头的任何内容。这些规则在我的空白 htaccess 文件中运行良好。
    猜你喜欢
    • 2023-03-27
    • 2013-01-19
    • 1970-01-01
    • 2018-05-09
    • 2012-07-30
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    相关资源
    最近更新 更多