Custom 404 page - existing plugins?

It seems that you need to develop a plugin to customize the 404 page.

Does anyone have an example of a plug-in that does that?

We’d love to (radically) change the 404 page, would be a shame if we’d develop a plugin if other have done so before :slight_smile:

Bump! I’d like to hide some of the existing widgets and show a New Topic button.

I see that the 404 page title can be set via Settings > Customize > Text Content > [search for current 404 error text that is displayed] but more options would be nice!

Здравствуйте,

Я хочу персонализировать свою страницу 404 в связи с миграцией с IPB на Discourse.
Мне нужна простая страница с текстом.

Какой вариант лучше всего подходит?

Спасибо

Кто-нибудь разобрался с этим? Шаблон 404 обрабатывается Ruby, а не JS, что странно.
Есть ли способ создать кастомный шаблон 404 в формате hbs и стилизовать его через тему?

Я также ищу способ настроить страницу 404. Одна из проблем, с которой я сталкиваюсь, заключается в том, что некоторые разделы форума закрыты. Поэтому, когда я ссылаюсь на них в чате или из другого сообщения, а пользователи не авторизованы на форуме, им кажется, что я дал ссылку на несуществующую страницу. В целом пользователи не любят много думать, поэтому, думаю, многие из них не обращают внимания на часть «или закрыта» в сообщении «Ой! Эта страница не существует или закрыта», так как страница кажется им несуществующей.

Я хотел бы сделать следующее: если пользователь не авторизован и страница возвращает 404, то отображать форму регистрации или входа поверх страницы 404 (без перенаправления, так как это может запутать поисковые системы). Если пользователь авторизован, но у него нет доступа, то должна показываться обычная страница 404.

Знает ли кто-нибудь, как это реализовать?

Включите улучшенную, но раскрывающую конфиденциальность страницу 404 в настройках вашего сайта.

Должна ли страница выглядеть иначе? Я только что проверил это на двух сайтах, и всё равно вижу ту же страницу ошибки:

Я пересобрал форум на одном из них, чтобы убедиться, что это не просто проблема кэширования, и проверил приватные темы и страницы, которые не были найдены.

Мои настройки выглядят так:

К каким «разделам» вы ссылаетесь? Вы ссылаетесь на конкретную тему?

Да, я пробовал загружать конкретные темы, сообщения, категории и несуществующие страницы, не будучи авторизованным, и вижу ту же самую страницу.

Посмотрим. Вот тема в категории Staff на моём собственном сервере Discourse:

https://discourse.codinghorror.com/t/test-topic-for-close-states/3516

Когда я загружаю её с параметром detailed 404, установленным в false (по умолчанию), я вижу:

Ой! Эта страница не существует или является приватной.

Что и следовало ожидать. Однако, когда я меняю detailed 404 на true, я вижу то же самое… Мы ли регрессировали здесь, @sam, или я неправильно понимаю эту функцию? :thinking:

Я даже выполнил пересборку на всякий случай, но результат тот же. Я ожидал увидеть:

Извините, у вас нет доступа к этой теме

при включённом detailed 404?

Я думаю, что сообщение, которое вы видите, верно, поскольку категория «staff» в конечном итоге является приватной, но я могу ошибаться.

Нет, суть в том, что в данном случае вы намеренно раскрываете информацию с помощью detailed 404: тема существует, но по какой-то причине у вас нет к ней доступа.

Кажется, над этой функцией работал @dan. Может быть, у тебя, Дан, есть какие-то идеи о том, что происходит?

Подробные сообщения об ошибке #404 отображаются только в том случае, если пользователь может получить доступ к группе, обычно присоединившись к ней (свободно или отправив запрос на вступление).

В данном случае пользователи не могут присоединиться к группе @staff или отправить запрос на вступление, что объясняет, почему подробная страница ошибки не показывается. Я думаю о добавлении случая else, когда включено «подробное 404», который будет отображать

Ой! Эта страница закрыта.

вместо

Ой! Эта страница не существует или закрыта.

Да, в данном случае предпочтительнее использовать оператор else.

Также стоит добавить кнопку «Назад» (window.history.back()) на страницу 404 для версии на Ember, так как в данном случае это единственное разумное действие, которое могут предпринять пользователи.

Это уже реализовано. Оказалось, что сервер уже возвращал 403, просто было изменено сообщение об ошибке.

Отлично, я обновил свой самохостинговый экземпляр, и теперь тема для сотрудников

https://discourse.codinghorror.com/t/test-topic-for-close-states/3516

корректно возвращает:

Ой! Эта страница закрыта.

При включённой опции detailed 404 при посещении в режиме инкогнито. Спасибо! :clap:

Один из частых запросов, который мы получаем, — чтобы в таком случае на странице отображалась кнопка входа, так как вход в систему может сделать тему доступной.

Мне кажется, это отличный и разумный запрос. @eviltrout, не могли бы вы назначить это, если это не слишком рискованно перед релизом?