SitecoreとWordPressを共存させてみる(IgnoreUrlPrefixesを設定してみる)
SitecoreはWebリクエストを受けるとページごとの処理パイプラインに入っていきますが、URLによっては別アプリケーションで処理させたい場合があります。
そのような場合には、Web.configのIgnoreUrlPrefixesを設定すると除外することができます。
6.5.0の場合
<setting name="IgnoreUrlPrefixes" value="/sitecore/default.aspx|/trace.axd|/webresource.axd|/sitecore/shell/Controls/Rich Text Editor/Telerik.Web.UI.DialogHandler.aspx|/sitecore/shell/applications/content manager/telerik.web.ui.dialoghandler.aspx|/sitecore/shell/Controls/Rich Text Editor/Telerik.Web.UI.SpellCheckHandler.axd|/Telerik.Web.UI.WebResource.axd|/sitecore/admin/upgrade/|/layouts/testing"/>
たとえば、IgnoreUrlPrefixesを設定していない場合、
このようなbarというアイテムがあれば、
物理フォルダ(barフォルダ)にindex.htmlファイルがあっても、
では、IgnoreUrlPrefixesを以下のように変更します。
<setting name="IgnoreUrlPrefixes" value="/sitecore/default.aspx|/trace.axd|/webresource.axd|/sitecore/shell/Controls/Rich Text Editor/Telerik.Web.UI.DialogHandler.aspx|/sitecore/shell/applications/content manager/telerik.web.ui.dialoghandler.aspx|/sitecore/shell/Controls/Rich Text Editor/Telerik.Web.UI.SpellCheckHandler.axd|/Telerik.Web.UI.WebResource.axd|/sitecore/admin/upgrade/|/layouts/testing|/bar|/wpj"/>
縦棒区切りで複数登録できます。
ここでは、/barと/wpjというURLを2つを最後に追加しました。
これで、再びbarにアクセスしてみると、HTMLの中身が表示されるようになります。
このように、登録したURLはサイトコアのパイプラインを処理されずに、直接IISで処理されます。ちなみにアイテムがない場合はIgnoreUrlPrefixesを設定しなくてもindex.htmlが表示されます。
Sitecoreと別のWebアプリケーションを同じサーバーで同居させたい場合にも、IgnoreUrlPrefixesの設定を使うと性能面でメリットがあると思われます。
たとえば、WordPressと共存させてみます。(手順は簡単なWebMatrixで入れました。)
仮想ディレクトリにWordPressのフォルダを登録
規定のディレクトリにindex.phpを入れて、表示。
WordPressの画面が表示されました。
Sitecoreさんとお話ししていたときに出てきたIgnoreUrlPrefixesを忘れないようにメモでした。