У меня есть ssl, установленный на сервере, но я хочу использовать его только для определенного каталога, например для www.domain.com/users, а не для каких-либо других вещей на сервере, например. www.domain.com?
Вы, вероятно, хотите двух вещей.
Требовать SSL в этом каталоге:
<Directory "/usr/local/www/path/to/directory">
SSLRequireSSL
</Directory>
Перенаправляйте людей, попадающих на эту страницу по http, для использования https:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/path/to/directory [NC]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://example.com$1 [R=301,L]
Есть и другие способы сделать то же самое; если это не подходит для вашей ситуации, скажите об этом, и мы сможем проработать детали того, чего вы пытаетесь достичь.
Я не знаю, действительно ли вы хотите делать то, о чем просите (используйте SSL для одного каталога и Отрицать это для других) - более распространенным является желание требовать SSL для одного каталога и возможность сделать его необязательным для всех остальных.
Чтобы потребовать SSL, просто создайте <Directory>
(или <Location>
) и добавьте SSLRequireSSL
директива к нему (Более подробную информацию об этой директиве можно найти в руководстве Apache.).
Если ты действительно делать хотите запретить SSL для всех других каталогов, вы можете использовать mod_rewrite поверх вышеуказанного решения для этого (переписать https://anything-that-doesnt-match/your/secure/directory
к http://....
), но имейте в виду, что некоторые браузеры могут препятствовать переписыванию URL https: // на http: //.
Реализация этого правила mod_rewrite находится между вами, раздел mod_rewrite руководства Apache, и какой бы алкогольный напиток вы ни использовали, чтобы справиться с mod_rewrite :-)