• このエントリーをはてなブックマークに追加

MediaWikiは最初https://example.com/ページ名/といったURL形式ではなく、https://example.com/index.php?title=ページ名といった形式。これが好きだという人はこのままで。

カスタマイズしたい時は、MediaWikiがインストールされたフォルダ直下の2つのファイルを編集し、上書きアップロードする。(必ずもとに戻せるようにバックアップは取ってね!)

  1. .htaccess
  2. LocalSettings.php

.htaccess(通常時)

RewriteEngine on

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?title=$1 [L,QSA]

他のCMSと似ている。実際にFTPでアップロードしている、リモート上のファイルがまずは優先的に読み込まれる。そのファイルがなければ、次にパラメータとしてMediaWiki側に値を与える。なので、同じファイルと同じページ名が存在する時は、ファイルまたはフォルダが優先される。

.htaccess(HTTPS・SSLの時)

常時SSLの設定は、2行追記するだけ。最初に記述しておく。非SSLでアクセスしてきた時に、強制的にSSLに書き換えるということ。

RewriteEngine on

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?title=$1 [L,QSA]

LocalSettings.php

$wgScript = "$wgScriptPath/index.php";
$wgRedirectScript = "$wgScriptPath/redirect.php";
$wgArticlePath = "$wgScriptPath/$1";

$wgArticlePath = "$wgScriptPath/$1";

このあたりがみそっぽい。リクエストされた値を$wgArticlePathに設定して、内部でクエリの値として渡し、そのページの名前が表示されたり、あるいはそのページがなければ新規作成ページに移動するという仕組み。

.htaccessは他のCMS等と同様に、アクセスしてきたURLに対して、どういうURL変更を行うかなどを明記できる。その変更された値の渡し方をもとにして、PHP側でうまく処理される様になっていると、短縮したURLなどを実現することができる。もともと、MediaWikiにはそういった短縮URLとして動作する仕組みが備わっている。