如何在htaccess中设置单URL 301重定向并将其余URL重定向到首页
.htaccess 301重定向配置方案
首先确认Apache服务器已启用mod_rewrite模块,且站点配置中开启了AllowOverride All权限允许.htaccess生效。
配置规则说明
规则必须按「指定URL重定向在前、通用全量重定向在后」的顺序编写,避免通用规则覆盖单条规则。
完整配置示例
<IfModule mod_rewrite.c> RewriteEngine On # 1. 单个指定URL的301重定向规则,可根据需求添加多条 # 示例:将站点内的/old-single-page 重定向到 /new-target-page RewriteRule ^old-single-page$ /new-target-page [L,R=301,NC] # 示例:如果要重定向完整带域名的URL,可使用如下写法 # RewriteCond %{HTTP_HOST} ^yourdomain.com$ [NC] # RewriteRule ^old-single-page$ https://yourdomain.com/new-target-page [L,R=301,NC] # 2. 其余所有未匹配到上面规则的URL,全部301重定向到首页 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ / [L,R=301] </IfModule>
参数解释
L:表示匹配到当前规则后停止匹配后续规则,确保指定URL的重定向不会被后面的通用规则覆盖R=301:标识使用301永久重定向,对搜索引擎收录更友好NC:表示匹配URL时忽略大小写RewriteCond %{REQUEST_FILENAME} !-f/!-d:排除真实存在的站点文件和目录,避免静态资源、首页本身被重定向规则影响,防止出现首页循环重定向的问题
注意:配置完成后请清除浏览器缓存再测试,301重定向会被浏览器默认缓存,未清缓存可能会看到旧的跳转结果。
内容的提问来源于stack exchange,提问作者D-LuX
相关产品推荐
相关产品推荐

