2012年11月29日
Windows の IIS で DynamicMTML を動作させる
DynamicMTMLは Apache ウェブサーバーでは .htaccess(mod_rewrite) によって動作します。IIS では .htaccess が使えないので、IIS の .htaccess 相当の web.config の機能を使います(404 や 403 のエラーハンドラだけでは .htaccess の機能を吸収しきれないためです。逆に web.config にはエラーハンドラ的な機能もあります)。
web.config は IIS 7.0 以降(+URLリライトモジュール)で使えます。IIS 7.0 URL リライトモジュールは、マイクロソフトダウンロードセンターから無償でダウンロード可能です。ダウンロードしたパッケージを実行するだけで簡単にインストール可能です。
DynamicMTML のための URL 書きかえ
- Power CMS テーマによって作成される .htaccess (またはブログ/ウェブサイトの設定で「DynamicMTMLを有効にする」を選択して保存すると生成される)から web.config を作成、設置する
- IIS マネージャを開く
- 該当サーバの「サイト」からディレクトリを選択
- 「URL 書き換え(URL Rewrite)」をダブルクリック
- 右側「規則のインポート(Import Rules...)」を選択
- 「インポートする規則(Import mod_rewrite Rules)」で構成ファイル(.htaccess)を選択
- 「インポート(Import)」を実行
- web.config に追加の設定を行う(下位ディレクトリに設置されるとバッティングするため)
- 作成された web.config をエディタで開く
- 以下のように条件を追加
- 編集前
-
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> # some settings </system.webServer> </configuration>
- 編集後
-
<?xml version="1.0" encoding="UTF-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> # some settings </system.webServer> </location> </configuration>
location プロパティの意味は、囲んだ内容を現在のディレクトリ以下に継承しないことを意味します。この web.config を設置しておけばエラーハンドラの設定は必要ありません。
コメントを投稿する