下面的代码将 www. 添加到任何不以 www. 开头的 URL:
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://www.%2%{REQUEST_URI} [L,R=301]
但是我希望它能做到这一点仅有的当 url 格式如下时:
something.com
假设 URL 如下:
something.something.com
我不想要添加 www 的规则。
我该如何改变这一点?
答案1
改变
RewriteCond %{HTTP_HOST} !^www\.
到:
RewriteCond %{HTTP_HOST} !(^www\.|\..+\.)
换句话说,将条件从寻找“www”改为寻找 www或者寻找两个点。
不过,考虑到问题的描述,这可能也会起作用,并且具有更简单的优点:
RewriteCond %{HTTP_HOST} !\..*\.
该问题可能更好地描述为“仅在“www.”前面添加一个点来重写任何主机”。