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ファイルがあっても、



Sitecoreのアイテムが表示されます。


では、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で入れました。)

FastCGIIISにも登録


仮想ディレクトリにWordPressのフォルダを登録


規定のディレクトリにindex.phpを入れて、表示。

WordPressの画面が表示されました。

Sitecoreさんとお話ししていたときに出てきたIgnoreUrlPrefixesを忘れないようにメモでした。