Eu li outros posts sobre como fazer isso, mas estou procurando uma solução que funcione. Também estou ciente de que posso personalizar os textos do site, mas essa não é uma solução para este caso de uso.
O que você gostaria que fosse feito?
Uma maneira de redirecionar para uma URL em “página proibida” e outra URL em “página não encontrada”. Pode ser um plugin, um componente de tema, algum JavaScript que eu cole em admin > customize > theme > custom css/html, ou alguma outra solução. Não quero configurar Apache ou Nginx. As URLs não mudarão com frequência e podem ser codificadas.
Quando você precisa que seja feito?
Nas próximas duas semanas.
Qual é o seu orçamento, em USD, que você pode oferecer para esta tarefa?
Aberto a sugestões.
*** Se interessado, por favor me envie uma mensagem privada. Não poste aqui dizendo “Eu farei isso”.
Desculpe, por favor, poste aqui então. Tive casos no passado em que alguém postou publicamente “Eu farei isso”, mas eu não queria contratar essa pessoa. Outros candidatos (melhores) não se candidatam porque o trabalho já foi preenchido.
Eu já tentei isso, mas não vejo nenhuma diferença. Se eu for para /foo com ele ativado ou desativado, eu recebo a mesma coisa. (Eu personalizei o texto para tentar dar a eles uma pista do porquê, mas isso não é muito satisfatório.)
Mas /foo não existe, então essa é a mensagem correta (você pode personalizá-la para dizer apenas “não existe” e remover “não encontrado” como escrevi enquanto você escrevia sua resposta)
Você quer mudar o comportamento para page-forbidden. Isso funciona como você pede, mas como o fórum, acho que este é para login-requerido, não posso dar um exemplo no seu site.
Concordo, e eu (erroneamente, como você aponta) personalizei ambos os textos para o mesmo, o que não está realmente correto. Mas ainda acho que não consigo fazer com que ele faça o que eu quero. Mais alguns detalhes sobre o caso de uso:
Temos várias categorias que têm requisitos de acesso especiais. Exemplos:
Para ver a categoria X, você precisa preencher um formulário de NDA, que o coloca no grupo-x.
Para ver a categoria Y, você precisa aceitar uma política do Discourse, que o coloca no grupo-y.
Para ver a categoria Z, você precisa passar por algum outro obstáculo, que o coloca no grupo-z.
Temos um post específico “Como ingressar em um subgrupo do fórum” que explica todas essas regras e tem links para os formulários.
Às vezes, um usuário recebe um link de tópico de outro usuário, mas não consegue acessá-lo, talvez porque não assinou um NDA. O Discourse os leva a uma página Proibida, mas não explica como eles podem obter acesso (ou seja, qual dos obstáculos eles precisam superar para ver o tópico). Personalizei o texto para tentar direcioná-los para “Como ingressar em um subgrupo do fórum”, mas o resultado não é muito satisfatório. (Veja a captura de tela acima.)
Vejo duas abordagens:
Na página Proibido, redirecioná-los para “Como ingressar em um subgrupo do fórum” e deixá-los ler todas as regras e, esperançosamente, deduzir qual obstáculo eles precisam superar para ver o tópico desejado.
Seria muito melhor se pudéssemos dizer explicitamente “Você não tem permissão para ver este tópico porque precisa assinar este NDA”. Isso exigiria uma configuração que mapeasse categorias para posts, por exemplo, categoria X → post com formulário de NDA. Existem 15-20 dessas regras/mapeamentos.