htaccess 重定向非 www http 和 https

2024-05-03

我想要:

  • http://example.com重定向至:http://www.example.com
  • https://example.com重定向至:https://www.example.com

以及任何东西http://whatever.example.com不要附加 www 之类的http://www.whatever.example.com.


试试这个规则:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这是一个解释:

  1. 第一个条件测试 HTTP 标头字段是否Host具有所需的格式(仅包含一个句点)。
  2. 第二个条件测试值的串联值是否HTTPS变量(值on and off) and s(所以要么ons or offs) 等于ons并捕获s。这意味着如果%{HTTPS}s评估为ons,第一个匹配组是s否则为空。
  3. 该规则将匹配所有请求,因为每个字符串都有一个开头(标记为^)并将它们重定向到评估值http%1://www.%{HTTP_HOST}%{REQUEST_URI}如果两个条件都为真。在哪里%1是前一个条件的第一个匹配组(s如果是 HTTPS,否则为空),%{HTTP_HOST}是 HTTPHost请求的内容和%{REQUEST_URI}是请求的绝对 URL 路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

htaccess 重定向非 www http 和 https 的相关文章

随机推荐