.htaccess如何强制域名带www且排除sensors文件夹
实现强制WWW跳转且排除sensors文件夹的.htaccess规则
你需要在原有HTTPS强制跳转规则的基础上,添加一条针对WWW主机名的重定向规则,同时确保该规则同样排除sensors文件夹。以下是完整的配置代码:
RewriteEngine On # 强制跳转至带www的HTTPS地址(排除sensors文件夹) RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{REQUEST_URI} !^.*/sensors/.*$ RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # 原有规则:强制HTTPS(排除sensors文件夹) RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !^.*/sensors/.*$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
规则说明:
- 第一条规则:匹配所有不带
www前缀的主机名(忽略大小写),且请求路径不包含sensors文件夹的请求,直接跳转至带www的HTTPS地址。这同时覆盖了http://xxx.com和https://xxx.com两种非WWW场景。 - 第二条规则:保留你原有的逻辑,匹配所有未使用HTTPS协议且路径不包含
sensors文件夹的请求,跳转至同主机名的HTTPS地址,处理http://www.xxx.com这类带WWW但未加密的请求。
注意事项:
- 必须确保配置开头包含
RewriteEngine On(如果你的.htaccess里还没加的话),否则重定向规则不会生效。 - 测试阶段建议将
R=301改为R=302临时重定向,避免浏览器缓存永久重定向规则导致测试不便,确认规则正常后再改回301。 - 规则顺序不可颠倒,必须先处理WWW跳转,再处理HTTPS跳转,否则可能出现跳转循环或不符合预期的结果。
内容的提问来源于stack exchange,提问作者Europeuser
相关产品推荐
相关产品推荐

