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