MediaWiki の ShortURLを設定してURLを短く分かり易くする

2022年1月1日

MediaWikiはウィキペディアのために造られたWikiプログラムで、だれでも自分のWikiを作ることができます。
https://ja.wikipedia.org/wiki/MediaWiki

MediaWikiのデフォルトでは /index.php?title=hoge というURLになるのでここから index.php と title=を外します。

その前に
https://www.mediawiki.org/wiki/Manual:Short_URL/ja
によると /Page_title は Not_recommended ということなので /wiki/hoge となるように(wiki/は残す) Apache で設定します。実際 / で試すとload.php問題やら対応の手間が増えてしまいました。
Apacheでの設定例はこのようになります

Alias /wiki /var/www/mediawiki

index.php を suppress するのもいつもの Apache 設定で行います。

Alias /wiki /var/www/mediawiki
<Directory /var/www/mediawiki>
    AllowOverride All
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L]
</IfModule>

MediaWiki 側の設定は LocalSettings.php で行います。30行付近から書き換えます。

#$wgScriptPath = "";
$wgScriptPath = "/wiki/";
$wgArticlePath = "/wiki/$1";
#$wgUsePathInfo = true;

wgServer は必要に応じて https に変更します

wgServer はSSL対応済みサイトでは https に変更しないと、favicon.ico ws などの通信でブラウザにエラーが記録されます、混在コンテンツ状態になります。wgUsePathInfo は不要だったようです。

さらに編集リンクなどからも index.php を非表示にする場合は追加の設定が必要になります。

https://www.mediawiki.org/wiki/Manual:$wgActionPaths/ja を参照

$wgScriptPath = "";
$wgScriptPath = "/wiki/";
$wgArticlePath = "/wiki/$1";
#$wgUsePathInfo = true;
$actions = array('edit', 'watch', 'unwatch', 'delete','revert', 'rollback', 'protect', 'unprotect', 'markpatrolled', 'render', 'submit', 'history', 'purge', 'info');
foreach ($actions as $action) {
          $wgActionPaths[$action] = "/wiki/$action/$1";
}
$wgActionPaths['view'] = "/wiki/$1";
$wgArticlePath = $wgActionPaths['view'];

このような設定でWikiのURLをシンプルにすることができました。