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

Mediawiki旧/w/前缀URL如何配置301重定向到无前缀短URL

配置方案

你只需要在现有mod_rewrite规则的最开头(紧跟RewriteEngine On之后)添加一条旧路径匹配的301重定向规则即可,修改后的完整规则如下:

RewriteEngine On
# 旧/w/路径301重定向到新路径
RewriteRule ^w/(.*)$ /$1 [L,R=301,NC,QSA]

# Short URL for wiki pages
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/index.php [L]
# Redirect Main Page to /
RewriteRule ^/*$ /index.php?title=Main_Page [L,QSA]
RewriteRule .*\.ico$ - [L]

规则说明

  • ^w/(.*)$ 匹配所有example.com/w/xxx格式的旧路径,提取页面标题部分作为变量$1
  • R=301 标识为永久重定向,会让浏览器后续直接访问新路径无需再请求旧路径
  • NC 不区分大小写,兼容/W/开头的异常访问
  • QSA 保留路径后的查询参数(如?action=history这类操作参数不会丢失)
  • L 匹配成功后不再执行后续重写规则,避免被其他规则覆盖

如果你的站点根目录下存在真实的w/目录且有需要正常访问的静态文件,可以把旧路径重定向部分调整为如下形式,避免覆盖真实文件的访问:

# 旧/w/路径301重定向到新路径
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^w/(.*)$ /$1 [L,R=301,NC,QSA]

配套检查

现有LocalSettings.php配置已经符合要求,不需要额外修改,如果你之前没有配置$wgUsePathInfo,可以追加一行确保路径解析正常:

$wgUsePathInfo = true;

修改完成后重启Apache服务,访问任意旧路径example.com/w/你的页面标题,会自动301跳转到example.com/你的页面标题即配置成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:54:02