Como forçar o Apache a responder com 403 para solicitações http?

2

Estou usando o Apache como frontend para um serviço RESTful que estou construindo. Todo o acesso ao serviço deve vir por HTTPS, então gostaria que o Apache respondesse a qualquer acesso HTTP com uma mensagem 403 informando que o acesso seguro é necessário.

Como eu configuraria o Apache para fazer isso?

<VirtualHost *:80>
        ServerName api.digiumcloud.net
        # Stuff to force 403 responses here
</VirtualHost>
    
por leedm777 04.02.2014 / 17:05

2 respostas

2

Acho que você pode ser o melhor simplesmente redirecionando seus usuários para HTTPS. Mas para fazer o que você quer, eu acho que o seguinte deve funcionar:

RewriteEngine on
RewriteRule /403-message.html - [L]
RewriteRule ^(.*)$ /403-message.html [L,R=403]
ErrorDocument 403 http://api.digiumcloud.net/403-message.html

Claro que você precisa criar um arquivo 403-message.html com o que quiser.

Mas para redirecionar para HTTPS:

RewriteEngine on
RewriteRule ^(.*)$ https://api.digiumcloud.net/$1 [L,R]
    
por 04.02.2014 / 17:16
0

Adicione SSLRequireSSL

Não é HTTPS, então sempre resultará em um erro 403 proibido

Redirecionando HTTP para HTTPS usando algo como ...

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule . https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

É a melhor solução e não codifica o servidor ou o URI, preservando o URI como parte do redirecionamento.

No entanto, você precisa fazer isso nas configurações do servidor, e não no ".htaccess".

Se você o usou em ".htaccess" com autenticação, a autenticação acontece ANTES do redirecionamento (as senhas são enviadas por HTTP sem criptografia).

As configurações do servidor não têm esse problema, pois as diretivas HTTP e HTTPS podem ser colocadas em VHosts separados.

    
por 14.11.2018 / 06:46

Tags