htaccess整站301重定向至新域名时如何排除sitemap.xml页面
实现方案
完全可以在现有配置基础上修改实现,只需要在原有整站重定向规则前新增RewriteCond条件判断,拦截sitemap.xml的跳转逻辑即可。
mod_rewrite规则按从上到下的顺序匹配执行,新增的条件会优先校验请求路径,只有请求路径不是sitemap.xml时才会触发后续301跳转。
修改后的完整配置代码
#Options +FollowSymLinks RewriteEngine on # 排除根目录sitemap.xml,不执行重定向 RewriteCond %{REQUEST_URI} !^/sitemap.xml$ # 原有整站301重定向规则 RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
补充说明
- 上述配置默认仅排除域名根目录下的
sitemap.xml,访问olddomain.com/sitemap.xml会正常留在旧域名,其余路径依旧正常跳转到新域名 - 301属于永久重定向,浏览器会本地缓存跳转规则,修改配置后测试请先清空浏览器缓存,或使用隐私无痕模式访问,避免旧缓存干扰判断
- 如果需要额外排除其他文件(比如robots.txt),只需要在现有RewriteCond下新增同格式规则即可,示例:
RewriteCond %{REQUEST_URI} !^/robots.txt$ - 如果需要排除站点所有层级目录下的sitemap.xml,可将条件里的匹配规则修改为
!sitemap.xml$
内容的提问来源于stack exchange,提问作者kadaktu
相关产品推荐
相关产品推荐

