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