Configuração do código de status de resposta sem CGI

1

Qual é a maneira mais clara de definir um código de resposta personalizado dentro do Apache sem recurso para CGI?

Duas vezes nos últimos dias eu queria fazer isso. A primeira vez que aposentei um aplicativo da web. O código de status 410 (desaparecido) parecia o mais adequado. Eu criei este snippet usando mod_rewrite:

ErrorDocument 410 /retired.html

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !retired.html
RewriteRule . - [G]

retired.html é uma mensagem exibida para qualquer pessoa seguindo links de outros lugares, para que eles entendam o que aconteceu.

Agora, tenho uma API de serviço da Web que só deve funcionar por HTTPS. Para o lado HTML, reescrevi as regras para redirecionar de HTTP para HTTPS, mas, para o acesso à API, prefiro que as solicitações não seguras recebam um erro grave. (Algumas bibliotecas HTTP do cliente seguem o redirecionamento em GET, então parece funcionar, então falhar de maneiras estranhas em POST, PUT ou DELETE.)

410 (ido) não é certo para isso, 403 (proibido) está mais perto, mas ainda não se sente bem. Obviamente, os códigos 3xx estão completamente errados.

Não há maneira, apenas dentro do Apache, de definir o código de status de resposta para uma solicitação?

    
por Steve Madsen 18.06.2012 / 21:45

1 resposta

1

403 é o código adequado para um servidor da Web responder se o SSL for necessário.

Se eu fosse você, apenas definiria SSLRequireSSL no vhost da porta 80 para esse caminho e deixaria fazer o que ele faz.

    
por 18.06.2012 / 21:59

Tags