SSL protege um diretório

1

Eu tenho SSL instalado no servidor, mas eu quero usá-lo apenas para um diretório específico para eaxmple para www.domain.com/users e não para qualquer outra coisa no servidor, por exemplo. www.domain.com?

    
por Aditya Shukla 16.02.2011 / 17:26

2 respostas

3

Você provavelmente quer duas coisas.

  1. Exigir SSL nesse diretório:

    <Directory "/usr/local/www/path/to/directory">
        SSLRequireSSL
    </Directory>
    
  2. Redirecionar as pessoas que acessam essa página por http para usar https:

    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^/path/to/directory [NC]
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*)$ https://example.com$1 [R=301,L]
    

Existem outras maneiras de realizar a mesma coisa; Se isso não funcionar bem para sua situação, diga isso e podemos descobrir os detalhes do que você está tentando realizar.

    
por 16.02.2011 / 17:43
1

Eu não sei se você realmente quer fazer o que você está pedindo (use SSL para um diretório e negue para os outros) - Mais comum é querer exigir SSL para um diretório e permitindo que ele seja opcional para todos os outros.

Para exigir SSL, basta criar um bloco <Directory> (ou <Location> ) e adicionar a diretiva SSLRequireSSL a ele ( Mais informações sobre essa diretiva podem ser encontradas no manual do Apache .

Se você realmente fizer quiser negar SSL para todos os outros diretórios, você pode usar o mod_rewrite no topo da solução acima (reescreva https://anything-that-doesnt-match/your/secure/directory to http://.... ), mas note que alguns navegadores podem recusar-se em URLs https: // sendo reescritas para http: //. A implementação dessa regra do mod_rewrite é entre você, seção mod_rewrite do manual do Apache , e qualquer bebida alcoólica você usa para lidar com mod_rewrite: -)

    
por 16.02.2011 / 17:42