IIS に WordPress をインストールしてパーマリンク設定をするには

IISで運営しているサーバにWordPressをインストールした。環境としては、OS が Windows Server 2003 でウェブサーバが IIS 6.0だ。

WordPressを動かすために必要な PHP、MySQL はすでにセットアップされている。したがって、WordPress のインストール自体は難しくない。データベースを作成し、wp-config.php に必要最低限のパラメータを記入し、インストールURLにアクセスすれば、いつものようにあっけなくインストールは完了する。そこまでは、Unix系の環境と何ら変わらないといっていいだろう。

もちろん、インストール直後の初期状態で使い続けるなら問題ない。しかし、少しでもカスタマイズしようと思えば立ちはだかる問題がある。Apache にあって IIS に無いもの。それが mod_rewrite である。

WordPress をインストール直後の状態だと、URLは動的URLとなり、個別記事のURLすなわちパーマリンクは http://ドメイン名/index.php?p=1 という形式となる。昨今の検索エンジンはかなり進化しているため、動的URLだからといってインデックスされにくいということもなくなってきている。その点はあまり神経質にならなくてもいいだろう。

しかしながら、知人にURLを知らせるときや、ブックマークされる時、あるいは他のウェブサイトからリンクしていただくのに、動的URLのままでは美しくないのは確かである。さらには将来的に、サーバ移転を行わなければならなくなり、リダイレクトをかけるときに連番のままのURLでは問題が起こるかもしれない。

そのため、URLリライトを行い静的URLの形式にしておきたい。それを実現するのに、Apache では mod_rewrite モジュールと .htaccess ファイルが必要だ。しかし、当然のことながら Apache とアーキテクチャの違う IIS は .htaccess を使うことができない。URLリライトを機能させるにためには代替の仕組みが必要だ。






解決策を検索してみると、まずひとつの方法としては、404エラーマッピングを使って、所定のパーマリンクを書き換えるというものが見つかった。詳しくはこちら WordPressパーマリンクの設定(Windows+IIS編) | SEOもっと!を参照いただきたい。

この方法でもカスタムのパーマリンクが動作確認できたが、本来の404エラーのときにもリライトがかかってしまうのではという懸念もあって、他にスマートな方法がないか探してみた。

それがISAPIフィルタの ISAPI_Rewrite だ。Lite バージョンは無料で使える。mod_rewrite の動作が IIS で可能になる。

Helicon Tech - Downloads
ISAPI_Rewrite is Apache mod_rewrite compatible URL rewriter for Microsoft IIS server.

IIS Serverに、ダウンロードした ISAPI_Rewrite Liteをインストールする。

OS、CPUのタイプにあったモジュールを選ぶ。今回使用したのは ISAPI_Rewrite3_0073_Lite_x64.msi だ。

インストールが終わると C:\Program Files\Helicon\ISAPI_Rewrite3\ISAPI_Rewrite.dll が存在しているはずだ。

ここでIISマネージャを開いてみて欲しい。Webサイト→プロパティ→ISAPIフィルタタブの中にフィルタ名 ISAPI_Rewrite3 が見えるはずだ。

ISAPI_Rewrite タブをクリックすると、httpd.conf を編集できる。Edit ボタンをクリックすると専用のエディタが開いて直接編集できる。

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1 [NC,L]


Applyボタンを押してOKボタンを押せば設定完了だ。IISを再起動してみよう。あとは WordPress のパーマリンク設定を変えるだけだ。左メニューバー→設定→パーマリンクにある。

ここでお気づきと思うが、有料版とLite版の違いは、有料版はウェブフォルダーのrootに置いた.htaccessファイルが使えるということのようだ。Lite版はWebサイトで共通の設定しかできない。設定ファイルは Lite版のインストールフォルダにある唯一の httpd.confのみである。

ほかに、<VirtualHost>, <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch> タグが使えないといった制約があるが、今回の目的である Wordpress のパーマリンクにおいては、複数のサイトを運用しない限りは無料のLite版で問題ない。




ちなみにこの記事中でセットアップしているレンタルサーバは、使えるねっとの Windows VPS だということを付け加えておく。

posted by さわひで at 18:23 | Comment(1) | TrackBack(0) | ウェブ系の技術
この記事へのコメント
この記事すごく役に立ちました。
ありがとうございます。
最初、【WordPressパーマリンクの設定(Windows+IIS編) | SEOもっと!】
を、参考にしたんですが、どうしてもうまくいかず、
御サイトを参考したら、すったもんだありましたがうまく行きました。感謝します。
Posted by やっぱくん at 2010年10月14日 10:48
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバック