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

SSL защищает каталог

У меня есть ssl, установленный на сервере, но я хочу использовать его только для определенного каталога, например для www.domain.com/users, а не для каких-либо других вещей на сервере, например. www.domain.com?

Вы, вероятно, хотите двух вещей.

  1. Требовать SSL в этом каталоге:

    <Directory "/usr/local/www/path/to/directory">
        SSLRequireSSL
    </Directory>
    
  2. Перенаправляйте людей, попадающих на эту страницу по 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 :-)