« PHP-5.1.5 | メイン | SquirrelMailで送信時にエラーメッセージが表示される »

MediaWikiのバージョンアップ

MediaWikiのバージョンアップを行ないました。系列は1.6のままです。
検索機能が正しく動いていない不具合がありましたので修正しました。

MediaWikiのカスタマイズのひとつにindex.phpを表示させないようにするにはLocalSettings.phpと.htaccessの設定を変更する。というものがあって、そのようにしていたのですが、そのままではスクリプトに渡す検索URIが不正なものになり正しく変数を渡せてませんでした。

LocalSettings.php
$wgScriptPath = "/zoids/zoids_wiki";
$wgArticlePath = "/zoids/zoidsWiki/$1";

はネットのchipsに書かれている通りです。ネット上のものは wiki/ に置くには とされてますが、うちのは階層が一個下です。

問題は .htaccess の方で

RewriteRule ^zoidsWiki/?(.*)$ /zoids/zoids_wiki/index.php?title=$1 [L]

がネット上の例ですが、検索時に
(略)zoids/zoidsWiki/%E7%89%B9%E5%88%A5:Search?search=(略)&fulltext=%E6%A4%9C%E7%B4%A2
というURLが生成されます。これはRewriteRuleによって
(略)zoids/zoids_wiki/index.php?title=%E7%89%B9%E5%88%A5:Search?search=(略)&fulltext=%E6%A4%9C%E7%B4%A2
に書き換えられます。

GETメソッドで変数を渡すには
URI?変数名1=値&変数名2=値
と最初だけ?で、後は&で結ぶ必要がありますが、?が2個でてしまい、正しく値が渡されません。

?を一つだけにするために

Options MultiViews
RewriteRule ^zoidsWiki/?(.*)$ /zoids/zoids_wiki/index.php/$1 [L]

として解決しました。

もう一つ。
自由に登録出来る状態になっていましたが、これはこちらの設定ミスで意図してなかったものでして、登録されていたいくつかのアカンウトは消しました。書き換えが出来る人は限定したいためです。ご理解ください。