問題、質問
ディスパッチャーがインストールされた IIS で書き換えルールを設定しようとすると、500 のエラーが発生します。 IIS7 の URL リライトモジュールを CQ ディスパッチャーと連動するように設定するにはどうすればよいですか?
解決策、回答
IIS 7.x の設定IIS7.x をインストールする手順はこちらです:
http://learn.iis.net/page.aspx/29/installing-iis-7-on-windows-server-2008-or-windows-server-2008-r2/
IIS をインストールするときは、すべての機能を有効にしてください。
IIS URL リライトの設定
IIS URL の書き換えモジュールが必要です。 インストールするには、この Web ページ http://www.iis.net/download/urlrewrite の右側のインストールボタンをクリックします。
ディスパッチャーの設定
IIS7 にディスパッチャーをインストールするには、次の手順に従います。
http://dev.day.com/docs/en/cq/current/deploying/dispatcher.html#Microsoft%20Information%20Server
URL 書き換えを設定すると、gzip 圧縮で機能します。
この手順では、IIS gzip 圧縮機能を設定します。これにより、URL 出力書き換えで動作するようになります(これら 2 つの機能が競合するデフォルトの設定で)。
- 「開始」 -> 「管理ツール」 -> 「インターネットインフォメーションサービス (IIS) マネージャー」へ移動します。
- IIS マネージャーでツリーを参照し、ディスパッチャーを設定した IIS サイトを選択します。
- 「圧縮」をダブルクリックします。
- 「静的コンテンツの圧縮を有効にする」をオフにします
- 「開始」に移動してクリックする
- 「検索プログラムとファイル」編集ボックスに「cmd」と入力し、Ctrl+Shift+Enter キーを押します(これはコマンドを管理者として実行します)
- 管理コマンドプロンプトで LogRewrittenUrlEnabled レジストリのエントリを追加するには、次のように入力します。
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Rewrite /v LogRewrittenUrlEnabled /t REG_DWORD /d 0 - 「インターネットインフォメーションサービス(IIS)マネージャー」ウィンドウに戻り、再度ディスパッチャー Web サイトに移動します。次に、「Configuration Editor」をダブルクリックし、dynamicCompressionBeforeCache プロパティが /system.webServer/urlCompression 設定エレメントで False に設定されていることを確認します。
- メインサイト表示に戻ります(左側のツリーのサイトをクリック)
- 「モジュール」をダブルクリックします
- モジュール画面で、右側の「View Ordered List...」をクリックします。
- 動的圧縮モジュール(DynamicCompressionModule)の下に URL 書き換えモジュール(RewriteModule)を移動します。
サンプルを書き直しのルールの設定
この手順では、www.geometrixx.com Web サイトのサンプル書き換えルールをいくつか設定します。これらのルールは .html 拡張子の URL を書き換えて、/content/geometrixx が含まれなくなるようにします。例えば CQ5 パブリッシュインスタンスを直接行く場合、http://localhost:4503/content/geometrixx/en.html にたどり着きます。これらの再書き込みルールによって、dns のホスト名 www.geometrixx.com を使用する IIS サーバーにアクセスする場合は、http://www.geometrixx.com/en.html に移動して、/content/geometrixx/en.html に移動します。
ディスパッチャーモジュールを一貫して動作させるために書き換えルールを設定するには、サーバーレベルで設定する必要があります。また、これらのルールは、UI を使用して IIS applicationHost.config xml ファイルを修正することで設定するほうがはるかに高速です。これらの指示はこの方法に従います。
- 「開始」に移動
- 「プログラムとファイルの検索」ボックスにテキスト「notepad」と入力し、Ctrl + Shift + Enter(管理者としてコマンドを実行する)を押します。
- 「次のプログラムがこのコンピューターに変更を加えることを許可しますか?」とポップアップに表示されたら、「はい」をクリックします。
- メモ帳で、「ファイル」/「開く」に移動します。
- ダイアログボックスに、このパスをコピーペーストします:c:\Windows\system32\inetsrv\config\applicationHost.config and hit Enter。applicationHost.config ファイルの内容がメモ帳に表示されます。
- 最後の xml タグのすぐ前に次をコピーペーストします </system.webServer>
<rewrite>
<globalRules>
<rule name="Root Context 1" enabled="true">
<match url="^(。*)\.html(.*)" />
<action type="Rewrite" url="/content/geometrixx/{R:1}.html{R:2}" appendQueryString="false" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www.geometrixx.com" />
<add input="{REQUEST_URI}" pattern="^/etc/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/etc$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/bin/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/system/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/libs/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/libs$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/var/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/tmp/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/tmp$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/crx/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/crx$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/content/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/crxde$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/apps/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/apps$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/scripts/disp_iis" negate="true" />
<add input="{REQUEST_URI}" pattern="^/dispatcher/invalidate" negate="true" />
</conditions>
</rule>
</globalRules>
<outboundRules>
<rule name="rewrite output" enabled="true">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/content/geometrixx/(.*)\.html(.*)$" />
<action type="Rewrite" value="/{R:1}.html{R:2}" />
<conditions>
</conditions>
</rule>
</outboundRules>
</rewrite> - メモ帳で、Shift + S キーを押して保存します
- 「スタート」 -> 「アドミニストレイティブツール」 -> 「インターネットインフォメーションサービス(IIS)マネージャー」へ移動します
- ツリー(サーバーアイコン)の上部ノードを選択/展開
- サーバーアイコンを右クリックし、「停止」をクリックしてサーバーを停止します。
- 停止したら、戻って「スタート」をクリックします。
- IIS マネージャーのサーバーアイコンを選択
- 右パネルで、「URL 書き換え」をダブルクリック
- これで、xml ファイルから追加したサンプルルールが表示されるようになりました。