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]
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!
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.
Você não pode simplesmente usar o SSLRequireSSL no diretório da loja .htaccess e SSLDenySSL em outro lugar?
Tags ssl wordpress https apache-2.2 rewrite