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

如何用.htaccess RewriteRule将sitemap.xml指向Laravel子目录特定路由

正确的.htaccess重写规则配置

根目录的.htaccess可以这样配置,确保sitemap.xml请求被内部重写到指定的API路由:

RewriteEngine On

# 内部重写sitemap.xml到API的指定路由入口
RewriteRule ^sitemap.xml$ api/public/index.php?/api/aaa/bbb [L,QSA]

规则说明:

  • ^sitemap.xml$:精确匹配根域名下的sitemap.xml请求,避免误匹配子目录中的同名文件
  • api/public/index.php?/api/aaa/bbb:将请求内部转发到API目录的public/index.php,同时传递路由参数/api/aaa/bbb(适配依赖查询字符串识别路由的框架)
  • [L]:标记为最后一条规则,停止后续规则处理
  • [QSA]:保留原请求的查询字符串(如果存在),比如sitemap.xml?foo=bar会保留foo=bar参数

如果你的API框架是通过PATH_INFO解析路由的,可改用以下规则:

RewriteEngine On

RewriteRule ^sitemap.xml$ api/public/index.php/api/aaa/bbb [L,QSA]

额外注意事项:

  1. 确保服务器对应目录的AllowOverride配置为All或FileInfo,否则.htaccess规则不会生效
  2. 若API目录的.htaccess有自身重写规则,直接使用上述指向具体入口文件的规则更稳定,可避免路径冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:55:16