IISとWordpressとURL書き換え(Rewrite)

WEBサーバーがApatchであればmod_writeでWordpressのURL書き換えが行えますが、IISの場合はmod_rewriteが使えません。でもIIS7以降は『URL Rewriteモジュール』というものをインストールすれば.htaccessのようなweb.configというファイルにリライトルールを記載することで実現ができるようです。

方法

  1. Microsoft Web Platform Installer』をダウンロード。
    http://www.microsoft.com/web/downloads/platform.aspx
  2. 『IIS Rewrite 2.0』を追加する
    『製品タブ』の中にあります。あとは画面に従ってインストールしてください。
    Microsoft Web Platform Installer
  3. サイトのルートディレクトリの『web.config』に以下を記載。
    ファイルが存在しなければ作成してください。
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <system.webServer>
    <rewrite>
    <rules>
    <rule name="Main Rule" stopProcessing="true">
    <match url=".*" />
    <conditions logicalGrouping="MatchAll">
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="index.php/{R:0}" />
    </rule>
    </rules>
    </rewrite>
    </system.webServer>
    </configuration>

 

これで、以下のWordpressのリライトルール(.htaccess)と同じ動作になります。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

 

『URL Rewriteモジュール』をIIS8にインストールすると『インターネットインフォメーションサービス(IIS)マネージャー』のページに『URL書き換え』というアイコンが追加されています。ここから『web.config』の内容をGUIで追加することも可能です。

インターネットインフォメーションサービス(IIS)マネージャー