Restringir o uso de SSL a apenas um diretório no Apache

2

Eu tenho um certificado SSL instalado e funcionando bem com o Apache 2.2.14. Agora, quero restringir o uso de https a apenas um diretório, ou seja, www.example.com/shop. Se um usuário acessa o link ou qualquer outro URL, mas www.example.com/shop, quero forçar http em vez de https.

Estou executando o Wordpress neste site e não posso imaginar como escrever as regras de reescrita corretas para esse cenário (aposto como simples). Qualquer ajuda apreciada!

    
por John V. 28.04.2012 / 00:10

3 respostas

2

Bem, não consigo pensar em nenhum bom motivo para bloquear ativamente o uso de HTTPS, mas isso deve ser feito ...

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/shop [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301]
    
por 28.04.2012 / 07:41
1

Uma regra de reescrita simples seria:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Você também pode usar a diretiva SSLRequireSSL no arquivo .htaccess para esse diretório para bloquear completamente acesso a essa pasta por HTTP, mesmo que a regra de reconfiguração seja ignorada por algum motivo.

P.S. Acho que você pode usar %{SERVER_PORT_SECURE} no lugar de %{HTTPS} acima.

    
por 28.04.2012 / 07:04
1

Você não pode simplesmente usar o SSLRequireSSL no diretório da loja .htaccess e SSLDenySSL em outro lugar?

    
por 28.04.2012 / 16:09