404 на поддомене
Как на поддомене настроить редирект на страницу ошибки основного домена?
Сейчас получается так:
1. в конфиге указан Id страницы 404
2. 404 осн. сайта — сайт.ру/404.хтмл
3. 404 поддомена получается пд.сайт.ру/404.хтмл
вот как сделать, чтобы 404 поддомена была сайт.ру/404.хтмл?
Сейчас получается так:
1. в конфиге указан Id страницы 404
2. 404 осн. сайта — сайт.ру/404.хтмл
3. 404 поддомена получается пд.сайт.ру/404.хтмл
вот как сделать, чтобы 404 поддомена была сайт.ру/404.хтмл?
Комментарии: 9
Создаете плагин на событие OnPageNotFound. В нем проверяете контекст при помощи $modx->context->key и если контекст относится к поддомену, то выполняете $modx->sendRedirect() на нужную страницу основного домена.
Работать будет, но это не очень корректно. Получается, что вместо показа 404 мы отправляем на 404.
А что пользователю делать, если нужно продолжить изучение сайта на поддомен?
Наиболее правильным здесь будет создание отдельной 404 в контексте поддомена и указание ее в аналогичной системной настройке в свойствах контекста.
Кстати, если не требуется сохранять навигацию поддомена, а можно спокойно показать 404 основного сайта, то включите системную настройку. В ее названии присутствует across_context. Когда найдете, напишите для истории точное название.
А что пользователю делать, если нужно продолжить изучение сайта на поддомен?
Наиболее правильным здесь будет создание отдельной 404 в контексте поддомена и указание ее в аналогичной системной настройке в свойствах контекста.
Кстати, если не требуется сохранять навигацию поддомена, а можно спокойно показать 404 основного сайта, то включите системную настройку. В ее названии присутствует across_context. Когда найдете, напишите для истории точное название.
Просто у мя ссылки на стили на странице 404 стоят относительные (вернее генерируются они такими с помощью MinifyX), соответственно на поддомене эти пути становятся некорректными. В этом и проблема…
Перечитал еще раз вопрос.
Никак не сделать. Максим правильно сказал, что здесь только вариант с перенаправлением на основной домен на 404 страницу. Но! В таком случае 404 будет отображаться уже не с 404 кодом. А это и есть некорректность.
Никак не сделать. Максим правильно сказал, что здесь только вариант с перенаправлением на основной домен на 404 страницу. Но! В таком случае 404 будет отображаться уже не с 404 кодом. А это и есть некорректность.
Да, согласен… Поисковикам будет отдаваться 301 ((((
Можно попробовать на событие OnPageNotFound проверять контекст или адрес запроса. Если запрос не в основном контексте -> $modx->switchContext('web') и дальше ничего не делаем, чтобы юзер получил 404.
Не проверял, но должно сработать.
Не проверял, но должно сработать.
Просто у мя ссылки на стили на странице 404 стоят относительные (вернее генерируются они такими с помощью MinifyX)Тег base не помогает решить проблему?
Тег base не помогает решить проблему?
он-то всегда указан, но, почему-то, не помогает в данном случае. я эту ошибку аще нашел по логам (кто-то попадал на пд.сайт.ру/404.хтмл и в логи сыпались ошибки, что не существует css и js по указанному пути)
Ну, обновления для minifyx довольно редко выходят — можете изменить эту строчку для реализации абсолютного пути.
$modx->sendRedirect($redirect_page, array('responseCode' => 'HTTP/1.1 404 Not Found'));
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.