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

如何移除MediaWiki URL中的'/wiki/'路径段?

解决MediaWiki rest.php路径被误识别为文章页面的问题

自己搭建的MediaWiki站点原本使用根路径直接访问文章(如https://[website]/Main_Page)和动作页面(如https://[website]/edit/Main_Page),安装FlaggedRevs扩展后,访问https://[website]/w/rest.php/flaggedrevs/internal/review/Main_Page出现404,请求被误识别为名为“W/rest.php/flaggedrevs/internal/review/Main Page”的文章。添加/wiki/路径段后问题解决,但希望保留根路径访问的形式,通过.htaccess配置修复该问题。

核心修复思路

问题根源是带PathInfo的rest.php请求(如/w/rest.php/xxx)被原有.htaccess规则误转发到w/index.php——因为%{DOCUMENT_ROOT}%{REQUEST_URI}对应的服务器真实路径不存在,触发了非文件/目录的转发规则。我们需要先让Apache直接处理/w/开头的真实脚本请求,再处理文章和动作页面的转发。

具体配置修改

  1. 更新.htaccess配置
    将原有配置修改为:
RewriteEngine On

# 放行/w/开头的请求,直接交由Apache处理真实脚本(含PathInfo)
RewriteCond %{REQUEST_URI} ^/w/
RewriteRule ^ - [L]

# 处理文章页面和动作路径的转发
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d

RewriteRule ^(.*)$ w/index.php?title=$1 [L,QSA]
RewriteRule ^$ w/index.php [L,QSA]
  1. 恢复LocalSettings.php配置
    去掉之前添加的/wiki/路径段,恢复为原始配置:
$wgArticlePath = "/$1";

$actions = array( 'view', 'edit', 'watch', 'unwatch', 'delete', 'revert', 'rollback', 'protect', 'unprotect', 'markpatrolled', 'render', 'submit', 'history', 'purge', 'info' );

foreach ( $actions as $action ) {
    $wgActionPaths[$action] = "/$action/$1";
}

验证效果

修改完成后:

  • 仍可通过根路径访问文章(如https://[website]/Main_Page)和动作页面(如https://[website]/edit/Main_Page)
  • https://[website]/w/rest.php/flaggedrevs/internal/review/Main_Page可正常访问,不会被识别为文章页面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:10:41