You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.htaccess中排除sitemap.xml?访问该文件跳转首页问题

问题分析

你的.htaccess规则会把所有不含斜杠的请求(比如sitemap.xml)都重写到index.php?page=$1,哪怕这个文件真实存在。这就是直接访问sitemap.xml会加载首页的核心原因——规则优先触发了重写逻辑,而非读取真实文件。

修复方案

在现有规则前添加条件,先排除真实存在的文件和目录,让服务器优先处理真实存在的资源,不存在的请求再走重写规则。修改后的.htaccess代码如下:

RewriteEngine On

# 排除真实存在的文件和目录
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# 处理非根目录的单段请求(比如 /about)
RewriteRule ^([^/]+)$ index.php?page=$1 [QSA,L]

# 处理根目录请求
RewriteRule ^/$ index.php [NC]
规则说明
  • RewriteCond %{REQUEST_FILENAME} !-f:仅当请求的不是真实存在的文件时,才执行后续重写规则
  • RewriteCond %{REQUEST_FILENAME} !-d:仅当请求的不是真实存在的目录时,才执行后续重写规则
  • 两个条件组合后,像sitemap.xml这类真实存在的文件会被直接访问,不会被强制重写到首页

内容的提问来源于stack exchange,提问作者Amjath Hussain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 03:07:04