2021年6月11日更新
因为以下的配置代码有点问题,具体见《MediaWiki中SVG格式尺寸缩放后无法显示》一文,所以重写了配置文件。
其实官方除了给出样例代码外,还提供了一个很好的网站https://shorturls.redwerks.org/,通过它我们可以快速地配置自己的nginx服务器。
界面可谓是相当的简洁,操作也相当方便,输入你已经搭建好的网站地址,它会自动侦测你所使用的服务器并生成一个配置页面。
一共三个框可以输入:第一个就是短链的形式,可以根据自己的需要调整,比如/wiki/$1,配置内容会根据你的情况自己变化。后面两个是跟fastcgi有关的,主要看PHP配置了。
然后把生成的代码复制到你的nginx配置文件中吧。
原文
MediaWiki默认的样式是这样的http://example.org/w/index.php?title=Page_title
为了使得我们的URL更加美观,可以采用短URL的方式,如下:
官方文档中默认以Ubuntu发行版为例进行介绍,但事实上很多网站服务器系统多采用CentOS。
server {
server_name wiki.mindseed.cn;
listen 80;
root /home/user/public_html;
index index.php index.html index.htm;
access_log /var/log/nginx/access-example.log;
error_log /var/log/nginx/error-example.log;
location ~ \.ht {
deny all;
}
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php;
}
location ^~ /maintenance/ {
return 403;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
try_files $uri @rewrite;
}
}
然后在LocalSettings.php中加入以下代码:
$wgScriptPath = "";
$wgArticlePath = "/$1";
$wgUsePathInfo = true;
$wgScriptExtension = ".php";
重新刷新页面即可。
上述的配置文件产生的效果为http://你的维基站/页面(虽然官方很不建议这样做,因为如果该域名不止用于唯一的维基站,并且在某些特定情况下也容易有错误产生),所以还是建议增加子目录如/wiki或/w,请根据自己的情况自行修改。
问题
虽然条目的短URL功能能够实现,但是.js和.css这样的文件却出现404错误。
解决方法:
其实这个问题原本也不应该出现的,就是因为太谨小慎微了点才导致的,怎么说?
因为我的Nginx配置文件是由 OneinStack 默认生成的,在大部分情况下都是适用的,也因此才会出现 PHP 文件可以而 JS 文件出错的情况。而这个默认配置文件的很多内容看似跟上面的很相像,我又舍不得全删掉,结果一直被它所困扰。
最简单的方法就是把上述的内容复制保存成配置文件就可以了,当然根目录的位置还得根据自己的实际情况来调整。
参考文章:
《Manual:Short URL/Page title - nginx, Root Access, PHP as a CGI module》
《Nginx官方MediaWiki配置》