MediaWikiのURLからindex.phpを消す
MediaWikiの1.40.1バージョンではURLは、index.php=title?XXX
と全てindex.phpの引数としてURLが生成されるのですが、このURL構造を変更してindex.phpを消して
https://your-site.com/pagename
のようにウィキペディアと同じようなURL構造に変更します。
LocalSettings.phpの編集
まずはLocalSettings.phpを編集します。
$wgScript = "$wgScriptPath/index.php"; $wgRedirectScript = "$wgScriptPath/redirect.php"; $wgArticlePath = "$wgScriptPath/$1";
$wgScriptPath
の変数は、LocalSettings.phpの序盤に定義されていますので注意が必要です。この$wgScriptPath
変数が定義されている後に上記のコードを記述する必要があります。
.htaccessの作成・編集
2つ目は.htaccessを作成または編集します。この.htaccessはMediaWikiをインストールしたルートディレクトリになります。
https://your-site/
直下なら
https://your-site/.htaccess
https://your-site/wiki/
とWikiをイントールしたなら
https://your-site/wiki/.htaccess
に置きます。
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ index.php?title=$1 [L,QSA]
RewriteBase /
はMediaWikiをインストールしたディレクトリによって変更します。
https://your-site.com/
にMediaWikiをインストールしたならこのまま変更無し、
https://your-site.com/wiki/
にMediaWikiをインストールしたなら、/wiki/と編集します。
ファイルを保存する時は、文字コードUTF-8改行はLFにすることを忘れないようにしてください。
上記の編集が完了して保存したら、2つのファイルをアップロードします。
URLからindex.phpを消す意味
URLからindex.phpを消す意味とはなんですか?と良く聞かれるのですが、これには諸説あります。
index.php=title?XXX
というURLだと、index.phpに関連するページということでGoogleなどの検索エンジンに同じページの関連ページとしてみなされるためSEO上不利になるindex.php=title?XXX
でも、Googleの検索エンジンには影響はない。だがURL的にカッコ悪い。これは、単にindex.phpから引数でページを読みこんでいるURLがかっこ悪くて、
https://your-site/wiki/XXX
となっているほうがスタイリッシュという技術屋あるあるな自己満足的カスタムです。
ちなみに、当サイトが
https://your-site/wiki/XXX
としたのは、完全に2つ目の理由です。やっぱりURLはindex.phpがないほうがカッコいいよねってだけです。