2021年6月11日更新

因为以下的配置代码有点问题,具体见《MediaWiki中SVG格式尺寸缩放后无法显示》一文,所以重写了配置文件。
其实官方除了给出样例代码外,还提供了一个很好的网站https://shorturls.redwerks.org/,通过它我们可以快速地配置自己的nginx服务器。
shorturls_redwerks_org.png
界面可谓是相当的简洁,操作也相当方便,输入你已经搭建好的网站地址,它会自动侦测你所使用的服务器并生成一个配置页面。
shorturls_redwerks_org-result.png
一共三个框可以输入:第一个就是短链的形式,可以根据自己的需要调整,比如/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配置

最后修改:2022 年 10 月 04 日
如果觉得我的文章对你有用,请随意赞赏