Я читал другие посты о том, как потенциально это сделать, но ищу рабочее решение. Я также знаю, что могу настроить тексты сайта, но это не подходит для моего случая.
Что вы хотите сделать?
Сделать так, чтобы при ошибке «страница запрещена» (page-forbidden) происходил перенаправление на один URL, а при ошибке «страница не найдена» (page-not-found) — на другой. Это может быть плагин, компонент темы, JavaScript, который я вставлю в раздел «Администрирование > Настроить > Тема > Пользовательские CSS/HTML», или какое-то другое решение. Я не хочу настраивать Apache или Nginx. URL-адреса будут меняться редко, поэтому их можно прописать жестко.
Когда это нужно сделать?
В течение следующих двух недель.
Какой ваш бюджет в долларах США, который вы готовы предложить за эту задачу?
Открыт к предложениям.
*** Если вы заинтересованы, пожалуйста, напишите мне в личные сообщения. Не пишите здесь «Я это сделаю».
Приносим извинения, пожалуйста, напишите здесь. У меня уже бывали случаи, когда кто-то публично писал: «Я это сделаю», но я не хотел нанимать этого человека. Тогда другие (более подходящие) кандидаты не подавали заявку, так как вакансия уже была занята.
Я пробовал это, но не вижу никакой разницы. Если я перехожу на /foo с включённой или выключенной функцией, результат одинаковый. (Я изменил текст, чтобы дать им подсказку, но это не очень удовлетворительно.)
Но /foo не существует, поэтому это правильное сообщение (вы можете настроить его так, чтобы оно гласило просто «не существует», и убрать «не найдено», как я написал, пока вы писали свой ответ)
Вы хотите изменить поведение для страницы «запрещено». Это работает так, как вы просите, но поскольку форум, для которого это, по-видимому, предназначен, требует входа в систему, я не могу привести пример на вашем сайте.
Я согласен, и я (ошибочно, как вы указываете) адаптировал оба текста одинаково, что не совсем верно. Но я всё ещё не думаю, что смогу заставить систему делать то, что мне нужно. Вот немного больше деталей о сценарии использования:
У нас есть несколько категорий со специальными требованиями доступа. Например:
Чтобы увидеть категорию X, нужно заполнить форму NDA, что добавляет вас в группу-x.
Чтобы увидеть категорию Y, нужно принять политику Discourse, что добавляет вас в группу-y.
Чтобы увидеть категорию Z, нужно выполнить какое-то другое условие, что добавляет вас в группу-z.
У нас есть определённый пост «Как присоединиться к подгруппе форума», в котором объясняются все эти правила и содержатся ссылки на формы.
Иногда пользователь получает ссылку на тему от другого пользователя, но не может получить к ней доступ, возможно, потому что он не подписал NDA. Discourse перенаправляет его на страницу «Доступ запрещён», но не объясняет, как получить доступ (то есть, какое условие нужно выполнить). Я адаптировал текст, чтобы попытаться направить его к посту «Как присоединиться к подгруппе форума», но результат не очень удовлетворительный. (См. скриншот выше.)
Я вижу два подхода:
На странице «Доступ запрещён» перенаправлять пользователя к посту «Как присоединиться к подгруппе форума» и дать ему возможность прочитать все правила и, надеюсь, самостоятельно понять, какое условие нужно выполнить для просмотра нужной темы.
Было бы гораздо лучше, если бы мы могли явно указать: «Вам не разрешено просматривать эту тему, потому что вам нужно подписать это NDA». Для этого потребуется конфигурация, сопоставляющая категории с постами, например: категория X → пост с формой NDA. Таких правил/сопоставлений у нас 15–20.