【问题标题】:Forcing users to access the site with www. and https强制用户使用 www 访问该站点。和 https
【发布时间】:2011-01-12 05:25:58
【问题描述】:

我正在尝试编写附加 www 的 .htaccess 规则。到域和 http 如果需要,但我似乎无法找到适用于每种情况的规则或规则集。

案例是……

\https://www.site.com - 应该可以工作

\http://www.site.com - 应该转到 \https://www.site.com

\http://site.com - 应该转到 \https://www.site.com

\https://site.com - - 应该转到\https://www.site.com

任何帮助将不胜感激。

【问题讨论】:

    标签: http .htaccess mod-rewrite redirect https


    【解决方案1】:

    试试这个规则:

    RewriteCond %{HTTPS} !on [OR]
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
    RewriteRule ^ https://www.%2%{REQUEST_URI} [L,R=301]
    

    这应该涵盖请求不是 HTTPS(第一个条件)或主机不是以 www.(第二个条件)开头的两种情况。在这种情况下,第三个条件将抓取没有起始 www.(如果存在)的主机,然后在规则的替换中使用该主机。

    【讨论】:

    • 不高兴,我在运行此程序时遇到了内部服务器错误。
    • @Toby:错误日志说什么?您是否使用了强制RewriteEngine on
    • 好的,我正在做一些愚蠢的事情来得到那个错误,我的错。但是它不包括 https://site.com 到 https://www.site.com
    • @Toby:嗯,那个案子也应该处理。导致重定向的条件表达式是!https || !starts_with_www。这意味着它不应该只在相反的情况下进行重定向:!(!https || !starts_with_www)。这等于https && starts_with_www。所以我看不出我的回答有任何错误。
    • 我在某些地方读到过一个问题,当站点使用 https:// 时,由于服务器自动不信任连接而导致重定向被阻止,这很可能是这种情况.感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 2016-11-12
    • 2016-07-04
    • 2019-01-27
    • 2018-05-09
    相关资源
    最近更新 更多