初めて IIS で CakePHP を動作させました。その時に一番手こずったのが mod_rewrite の設定です。IIS だと ISAPI Rewrite とかを使った例がありますが、今回は IIS7 のためなのか、ISAPI Rewrite がうまく動作しませんでした。そこで URL Rewrite で設定を行いました。
※ Windows サーバはあまり詳しくないので、ISAPI Rewrite が動作しなかった本当の原因は不明です。

サーバは Windows Server 2008 です。

IIS マネージャから URL Rewrite を選択
ピクチャ 1

右側にある “Import Rules” を選択します。
ピクチャ 2

真ん中の Rewrite rules という部分に mod_rewrite の設定を書きます。
ピクチャ 3

そうすると勝手に変換してくれ、変換結果が下の Converted rules の部分に出ます。このとき不要な部分はエラーになりますので、 Rewrite rules から削除していきます。最終的に全てエラーなく変換できたら「適用」をクリックします。

app/webroot がドキュメントルートの場合は以下の設定を Rewrite rules に入れれば OK でした。

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

関連する投稿