9

だから私はメインの下に4つのサブドメインを持つサイトで働いています。彼らはすでにMSMライセンスを持っているので、私はそれを使って潜水艦を分割しています。

私の質問は:

すべてのサイトの404リダイレクトを処理するための最良の方法は何ですか?メインサイトとすべてのサブドメインに共通の404ページを使用したいと思います。

メインサイトでは、それは十分に簡単です。

{if no_results OR segment_3!=""}
    {redirect="404"}
{/if}

しかし、私が追加した場合、他のサイトは分析などのページビューを登録するだけではありません。

{if no_results OR segment_3!=""}
    {embed="default_site:_includes/404"}
{/if}

サイト全体で同じ結果を取得し、404個の統計をすべて取得できるようにしたいと思います。

ありがとう、ブライアン

4

1 に答える 1

6

さて、私が最終的に得たのは次のとおりです。

各サイトに「_includes」のテンプレートグループを作成しました。次に、これらの各サイトのテンプレートグループにテンプレート「404-Page」を作成しました。(これは本当に覚えやすいようにするためのものです。任意のテンプレートグループ、テンプレート構成に含めることができます)

これらのそれぞれには、次のものが含まれていました。

{embed="default_site:_includes/404-Page"}

次に、各サイトの下で、[デザイン]=>[テンプレート]=>[グローバル設定]の下にあります。

サイトを「厳密なURLを有効にする」=「はい」および「404ページ」=「_includes/404-ページ」に設定しました

送信されたヘッダーでこれを確認したところ、404が正常にトリガーされました。私が遭遇した問題の1つは、IIS7のWindowsサーバーで実行されていることでした。また、web.configファイルの404エラーを無効にして、次のようなカスタム404コードを処理する必要がありました。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpErrors errorMode="Custom" existingResponse="Replace">
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" path="/index.php/_includes/404-Page.html" responseMode="ExecuteURL" />
        </httpErrors>
    </system.webServer>
</configuration>

このweb.configファイルをサイトの各ルートフォルダーに配置しました。パスの名前は同じなので、これは単純な貼り付け/ダンプでした。

これが他の誰かの助けになることを願っています。;)

于 2012-11-01T13:56:26.300 に答える