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

如何配置Rewrite Rule为所有页面传数据库变量,避免子路径404?

解决多数据库子路径URL重写404问题

你只需要调整Rewrite规则,让它匹配所有子路径请求,不用单独为每个文件夹/文件配置规则。具体配置如下:

RewriteEngine On

# 处理带子路径的请求(如/projects/database1/somefolder/somefile.php)
RewriteRule ^projects/([a-z]+)/(.*)$ /projects/$2?db=$1 [QSA,NC,L]

# 处理首页请求(如/projects/database1/)
RewriteRule ^projects/([a-z]+)/?$ /projects/index.php?db=$1 [NC,L]

规则说明:

  • ^projects/([a-z]+)/(.*)$:匹配所有以projects/数据库标识/开头的请求,第一个括号捕获数据库名(比如database1),第二个括号捕获后续的完整子路径(比如somefolder/somefile.php)
  • /projects/$2?db=$1:将请求转发到实际存在的子路径$2,同时把捕获到的数据库名作为db参数传递
  • QSA:自动保留原URL中的查询参数(比如?id=1&aa=bb),不会丢失
  • NC:忽略URL大小写
  • L:执行完这条规则后停止后续规则处理

注意事项:

  • 合并后只需把原folder1-4中任意一个的完整目录结构放到projects根目录下即可,因为四个文件夹结构一致
  • 静态资源(CSS、JS、图片等)的请求也会被正确转发,无需额外配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:52:48