Настройка сайта MSM 5 с общим перенаправлением страницы 404

Так что я работаю над сайтом с 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 статистики.

Спасибо Брайан

1 ответ

Решение

Итак, в итоге я получил следующее:

Я создал группу шаблонов "_include" на каждом сайте. Затем я создал шаблон "404-страница" в каждой из групп шаблонов этих сайтов. (Это было действительно просто для запоминания. Они могут быть в любой группе шаблонов, шаблон конфигурации, который вы хотите)

Каждый из них содержал следующее:

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

Затем под каждым сайтом, в разделе: Дизайн => Шаблоны => Глобальные настройки

Я установил для сайта "Включить строгие URL" = "Да" и "Страница 404" = "_includes/404-Page"

Я проверил это в отправленном заголовке, и это вызывает 404 штрафа. Одна из проблем, с которыми я столкнулся, заключалась в том, что он работал на сервере Windows под IIS7. Мне также пришлось отключить ошибки 404 в файле web.config и обработать пользовательский код 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 в каждой из корневых папок сайта. Поскольку пути назывались одинаково, это была простая вставка / сброс.

Я надеюсь, что это поможет кому-то еще.;)

Другие вопросы по тегам