MediaWikiをショートURLにする(Apache)
提供:あわ自由帳
Apacheを使ったサーバーで、MediaWikiをシュートURLにする方法を書きます。この方法は、ここで動作確認しています。
WAN | +----------------------+ +-----------------------+ | http://sudachi.jp | | /w/ | | +-----+------+ | | .htaccess | | | MediaWiki 本体 | | index.php | | | LocalSettings.php | | robots.txt | | +-----------------------+ +----------------------+ | | +-----------------------+ | | /wiki/ | +------+ | | .htaccess | | | +-----------------------+
http://sudachi.jp/w/
MediaWiki本体を置く。
/w/sitemap/ に、サイトマップを設置しています。
ここの場合、/wiki/ ディレクトリ名を /w/ に変えて「LocalSettings.php」、「.htaccess」の設定を変更しただけでは動作しませんでした。キャッシュの削除などしたのですが、スクリプトエラーがでました。
新しく、/w/ ディレクトリに、MediaWikiをインストールし、旧 /wiki/ から /extensions/ と /images/ ディレクトリをコピーし、使用する skins もコピーしました。
「.htaccess」は、設置しません。
[root@host3 ~]# rm -fr /var/www/html/w/images/* [root@host3 ~]# cp -f -R /var/www/html/wiki/images/* /var/www/html/w/images [root@host3 ~]# chmod 777 /var/www/html/w/cache [root@host3 ~]# chmod 777 /var/www/html/w/images [root@host3 ~]# chown -R sysop:sysop /var/www/html/w [root@host3 ~]# chown -R apache:apache /var/www/html/w/images/* [root@host3 ~]# rm -fr /var/www/html/w/extensions/* [root@host3 ~]# cp -f -R /var/www/html/wiki/extensions/* /var/www/html/w/extensions [root@host3 ~]# chown -R sysop:sysop /var/www/html/w/extensions [root@host3 ~]# chmod 777 /var/www/html/w/extensions/Widgets/compiled_templates ← Widgetsを設置してる場合のみ [root@host3 ~]# chown -R apache:apache /var/www/html/w/extensions/Widgets/compiled_templates/* ← Widgetsを設置してる場合のみ
データーベースは、旧のものをつかいます。
動作を確認しながら、LocalSettings.php の設定を旧から、新のほうへコピーしショートURL以外は完全に、同じように動作するように設定します。その後、旧 /wiki/ディレクトリは名前を変え下記の設定を行いました。
LocalSettings.phpの設定
LocalSettings.php に書き加えてください。
$wgScriptPath = "/w"; $wgArticlePath = "/wiki/$1"; $wgUsePathInfo = false; # don't need prior to 1.11.x ## The protocol and server name to use in fully-qualified URLs $wgServer = "http://sudachi.jp"; ← http: 削除
http://sudachi/jp/wiki/
シュートURLアドレスです。
/wiki/ディレクトリ作成
[root@host3 ~]# mkdir /var/www/html/wiki
.htaccess
.htaccess を設置してください。
RewriteEngine On # MediaWiki ショートURL RewriteRule ^(.+)$ %{DOCUMENT_ROOT}/w/index.php?title=$1 [L,QSA] RewriteRule ^$ %{DOCUMENT_ROOT}/w/index.php [L]
トップページ対策
ドメイントップのアクセス対策をします。
ここの場合だと、[http://sudachi.jp/]に設置します。
サブディレクトリで他のCMSも動かしているので下記のようになりました。
.htaccess
「.htaccess」を設置します。
DirectoryIndex index.php
index.php
「index.php」を設置します。
<?php header("HTTP/1.1 301 Moved Permanently"); header("Location: /wiki/") ; ?>
MediaWiki用robots.txt
ドメイントップに設置するMediaWiki用robots.txtです。
User-agent: * # MediaWiki Allow: /w/api.php?action=mobileview& Allow: /w/load.php? Allow: /w/sitemap/ Disallow: /w/ Sitemap: http://sudachi.jp/w/sitemap/sitemap-index-wiki.xml