Назад | Перейти на главную страницу

Ограничьте использование SSL только одним каталогом в Apache

У меня установлен сертификат 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} выше.