読者です 読者をやめる 読者になる 読者になる

MediaWikiをWindowsに入れる場合の制限について。

Apache

Linux環境で、MediaWikiを短いURLで運用するには、

を参考に、

    Alias /wiki /path/to/wikidir
    <Directory /path/to/wikidir>
        Options FollowSymLinks
        Order allow,deny
        Allow from all

        RewriteBase /wiki # ←これ大事。
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.+)$ index.php?title=$1 [PT,L,QSA]
    </Directory>

でうまくいきました。

が、この設定はWindowsでは使えません。

コロン(:)をドライブレターで使うので禁止されているらしく、Alias(per-directoryリライト)の処理が行われずに403 Forbidden が帰ってきてしまいます。

公式サイトにはGo Linux!とか書いてありますが、、ドキュメントルートに直接 MediaWikiのディレクトリを入れることでこの問題を回避できました。

Alias/Directoryディレクティブを使うとコロンが使えなくなるので、VirtualHost直下に以下を記述しました。

    RewriteEngine on
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
    RewriteRule ^/_wiki/(.+)$ /_wiki/index.php?title=$1 [PT,L,QSA]
    RewriteRule ^/_wiki/*$ /_wiki/index.php [PT,L,QSA]

恐らくRewriteBaseを指定していないせいで、%{REQUEST_FILE}が-fにマッチしなくなるので、苦し紛れに%{DOCUMENT_ROOT}%{REQUEST_URI}にしたらうまくいきました。

です。


ちなみに、mod_rewriteの詳細なログを見るには、

    RewriteLog logs/rewrite.log
    RewriteLogLevel 9

とします。