MediaWiki 1.29本地部署:常规URL无法访问,需配置启用Ugly URLs
看起来你遇到的是MediaWiki友好URL(Clean URLs)配置不生效的典型问题——毕竟Ugly URLs不需要重写,直接通过参数传递就能工作,而友好URL依赖服务器的URL重写规则和MediaWiki的正确配置配合。下面一步步帮你排查和解决:
1. 确认MediaWiki核心配置是否正确
首先打开你的LocalSettings.php文件,找到$wgArticlePath配置项,确保它设置为:
$wgArticlePath = "/mywiki/index.php/$1";
同时,还要确认$wgUsePathInfo设置为true(这是1.29版本默认值,但最好手动检查一遍):
$wgUsePathInfo = true;
注意:这里的/mywiki/要和你实际的MediaWiki安装目录对应,如果你的wiki是放在服务器根目录下,就改成/index.php/$1。
2. 配置服务器的URL重写规则
这一步是核心,友好URL需要服务器把请求重写到index.php处理,分两种常见服务器说明:
Apache服务器
- 首先确保Apache已经启用了
mod_rewrite模块:可以通过phpinfo()页面查看,或者在终端执行a2enmod rewrite启用,之后重启Apache服务。 - 在你的MediaWiki安装目录(即
mywiki文件夹)下,创建或修改.htaccess文件,添加以下内容:
RewriteEngine On RewriteBase /mywiki/ # 处理友好URL请求 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
注意:RewriteBase后面的路径要和你的安装目录完全匹配,根目录则写/。
Nginx服务器
如果你用的是Nginx,需要在站点配置文件中添加对应的rewrite规则,示例如下:
location /mywiki/ { try_files $uri $uri/ /mywiki/index.php?$args; } # 更精准的规则可选: location ~ ^/mywiki/(?!index.php/).*$ { rewrite ^/mywiki/(.*)$ /mywiki/index.php/$1 last; }
修改完成后记得重启Nginx服务。
3. 检查文件权限
确保你的.htaccess文件(Apache环境下)有正确的读取权限,一般设置为644即可;同时mywiki目录的权限要让服务器能正常访问,建议设置为755。
4. 清除MediaWiki缓存
有时候配置修改后缓存会导致设置不生效,你可以:
- 手动删除MediaWiki安装目录下
cache文件夹内的所有文件(不要删除文件夹本身) - 或者通过Ugly URLs访问
Special:Purge页面,清除全站缓存
5. 强制使用Ugly URLs(可选)
如果你其实是想直接关闭友好URL、强制使用带?title=参数的Ugly URLs,只需要把$wgArticlePath改成:
$wgArticlePath = "/mywiki/index.php?title=$1";
这样所有页面链接都会自动生成Ugly URLs格式,也就不会出现访问失败的问题了。
内容的提问来源于stack exchange,提问作者The Winter One

