У меня установлен сертификат SSL, который работает с Apache 2.2.14. Теперь я хочу ограничить использование https только одним каталогом, а именно www.example.com/shop. Если пользователь переходит на https://www.example.com или любой другой URL-адрес, кроме www.example.com/shop, я хочу принудительно использовать http вместо https.
Я использую Wordpress на этом сайте и, хоть убей, не могу понять, как написать правильные правила перезаписи для этого (бьюсь об заклад, простого) сценария. Любая помощь приветствуется!
Что ж, я не могу придумать какой-либо веской причины активно блокировать использование HTTPS, но это должно сработать ...
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/shop [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301]
Не могли бы вы просто использовать SSLRequireSSL в каталоге магазина .htaccess и SSLDenySSL в другом месте?
Простое правило перезаписи:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Вы также можете использовать Директива SSLRequireSSL в файле .htaccess для этого каталога, чтобы полностью запретить доступ к этой папке через HTTP, даже если правило перезаписи по какой-то причине игнорируется.
P.S. Я думаю ты можешь использовать %{SERVER_PORT_SECURE}
на месте %{HTTPS}
выше.