HTML静态站www与非www域名未跳转至同一URL的.htaccess配置问题
配置不生效排查点
- 核心环境校验:确认Apache的
mod_rewrite模块已开启,站点对应目录的AllowOverride参数设置为All,这是.htaccess规则生效的基础。虚拟主机用户可直接在后台查找对应开关,独立服务器用户需修改httpd.conf中对应站点的配置段。 - 规则覆盖不全:原有配置仅处理了带www域名的跳转,未覆盖HTTP强制转HTTPS的场景,会导致HTTP、HTTPS两个版本的站点同样被搜索引擎判定为重复内容。
- 缓存干扰问题:301属于永久重定向,浏览器会长期缓存旧的跳转规则,测试时需使用无痕模式,或执行
curl -I 你的域名命令查看真实的服务端返回头,避免本地缓存误导判断。 - CDN规则冲突:如果使用了CDN服务,CDN侧的SSL配置、重定向规则优先级高于源站.htaccess,需确认CDN没有冲突的跳转规则;若使用Flexible类SSL模式,需额外添加
X-Forwarded-Proto判断避免跳转死循环。
纯HTML静态站标准.htaccess配置
RewriteEngine On # 强制跳转HTTPS,兼容CDN场景 RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://domain.lv/$1 [L,R=301] # 所有带www的请求统一跳转到非www域名 RewriteCond %{HTTP_HOST} ^www\.domain\.lv$ [NC] RewriteRule ^(.*)$ https://domain.lv/$1 [L,R=301] # 隐藏.html后缀访问 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html [NC,L] # 自定义404页面 ErrorDocument 404 /404.html # 可选:静态资源缓存配置,提升加载速度与SEO评分 <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/webp "access plus 1 month" ExpiresByType text/css "access plus 1 week" ExpiresByType application/javascript "access plus 1 week" ExpiresByType text/html "access plus 4 hours" </IfModule> # 可选:关闭目录浏览,提升站点安全性 Options -Indexes
使用时将配置中的domain.lv替换为实际域名即可,缓存时长可根据自身内容更新频率调整。
内容的提问来源于stack exchange,提问作者donk1hot
相关产品推荐
相关产品推荐

