Vue项目中如何将所有www访问流量重定向至非www域名
问题根因
你当前的www重定向规则逻辑存在错误:匹配到带www前缀的域名后,重定向目标依然调用了原请求的%{HTTP_HOST}变量,相当于没有做域名替换,自然不会跳转到非www版本的站点。
修正后的完整.htaccess配置
<IfModule mod_rewrite.c> RewriteEngine On # www跳转到非www规则,%1自动匹配去掉www前缀后的根域名,无需手动替换域名 RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] </IfModule>
如果你的站点暂时未使用HTTPS,将重定向规则里的https://改为http://即可。
生效前需确认的事项
- 确保你的Apache服务器已经开启
mod_rewrite模块,同时站点配置中AllowOverride参数设置为All,否则.htaccess文件不会被服务器读取 - 301重定向属于永久重定向,浏览器会长期缓存旧的重定向规则,修改配置后需要清空浏览器缓存或者用无痕模式测试,避免旧缓存干扰判断
- 如果你使用HTTPS访问,需要确保带www和不带www的两个域名都已经配置了有效的SSL证书,否则跳转时会触发证书不安全报错
内容的提问来源于stack exchange,提问作者user10012
相关产品推荐
相关产品推荐

