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

MediaWiki扩展URL参数优化:将dbid参数转为斜杠形式

解决MediaWiki扩展URL重写:用斜杠替代dbid参数

我来帮你搞定这个MediaWiki的URL重写需求!你想要把/w/Page?dbid=1234这种带查询参数的URL改成更友好的/w/Page/1234格式,之前的规则因为匹配范围太广容易出错,下面给你一套精准可行的方案:

最终.htaccess配置(放在/w/目录下)

RewriteEngine On

# 优先匹配带dbid的URL格式:/w/页面标题/数字dbid
# 这里限定dbid为数字,如果你的dbid包含字母/下划线,把[0-9]+改成[a-zA-Z0-9_]+
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([0-9]+)$ index.php?title=$1&dbid=$2 [L,QSA]

# 处理普通页面URL:/w/普通页面标题
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?title=$1 [L,QSA]

关键细节解释

  • 精准匹配避免冲突:第一条规则用^([^/]+)/([0-9]+)$只匹配「单斜杠分隔、第二段是数字」的路径,这样不会误把本身带斜杠的MediaWiki页面标题(比如Help/Contents)拆成title=Help&dbid=Contents,完美区分普通页面和触发扩展的页面。
  • 保留额外参数:[QSA]标志非常重要,它会自动保留URL中其他的查询参数(比如/w/Page/1234?action=edit会被正确转译为index.php?title=Page&dbid=1234&action=edit),兼容MediaWiki的各种操作参数。
  • 规则顺序:一定要把带dbid的规则放在普通页面规则前面,因为Rewrite规则是从上到下匹配的,优先处理特殊格式的URL。

额外注意事项

  1. 确认MediaWiki的配置:确保LocalSettings.php中的$wgScriptPath = "/w";设置正确,对应你的安装目录。
  2. 与现有规则整合:如果你的MediaWiki已经配置了默认的友好URL规则,把这套规则放在默认规则的前面,避免被覆盖。
  3. 调试测试:可以直接访问/w/你的页面/1234,查看是否正确触发扩展;如果有问题,可以检查服务器是否开启了Rewrite模块(Apache需要mod_rewrite启用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:52:37