+ Responder ao Tópico



  1. #1

    Padrão Direcionar http para https

    Boa tarde,

    Bom eu tenho instalado em meu servidor o red hat el 4, apache e outros pacotes, mas meu problema é outro, tenho um cenário onde hoje eu tenho 4 paginas, sendo que tenho um site principal, www.meusite.com.br/pag, as outras 3 ficam da seguinte forma, www.meusite.com.br/pag1, www.meusite.com.br/pag2, www.meusite.com.br/pag3, sendo que a primeira foi desenvolvida em FLEX, a segunda e terceira em java e a quarta em PHP, tenho certificado digital, então o que eu quero é direcionar todas as paginas quando eu digitar www.meusite.com.br/pag, ou /pag1, ou /pag2 e /pag3, que direcione direto para https://meusite.com.br/pag, https://meusite.com.br/pag1, https://meusite.com.br/pag2 e https://meusite.com.br/pag3, alguem sabe me dizer como fazer isso, abaixo segue como esta hoje o meu vhosts.conf, só lembrando que a /pag3 é PHP, por isso não aparece no JkMount.

    <VirtualHost *:80 >
    DocumentRoot /eu/meusite
    ServerName www.meusite.com.br
    ServerAdmin [email protected]
    ErrorLog /var/www/meusite/logs/error.log
    CustomLog /var/www/meusite/logs/access.log combined
    JkMount /remote site
    JkMount /remote/* site
    JkMount /mapas site
    JkMount /mapas/* site
    JkMount /pag site
    JkMount /pag/* site
    JkMount /pag1 site
    JkMount /pag1/* site
    JkMount /pag2 siteh
    JkMount /pag2/* siteh
    RewriteEngine on
    RewriteRule ^/$ https://www.meusite.com.br/pag [R]

    </VirtualHost>

    <VirtualHost *:443>
    DocumentRoot /eu/meusite
    ServerName www.meusite.com.br
    ServerAdmin [email protected]
    ErrorLog /var/www/meusite/logs/error.log
    CustomLog /var/www/meusite/logs/access.log combined
    JkMount /remote site
    JkMount /remote/* site
    JkMount /mapas site
    JkMount /mapas/* site
    JkMount /pag site
    JkMount /pag/* site
    JkMount /pag1 site
    JkMount /pag1/* site
    JkMount /pag2 siteh
    JkMount /pag2/* siteh
    RewriteEngine on
    RewriteRule ^/$ https://www.meusite.com.br/pag [R]

    ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    LogLevel warn

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

    SSLCertificateFile /etc/httpd/keys/www.meusite.com.br-2009.crt
    SSLCACertificateFile /etc/httpd/keys/www.meusite.com.br-2009.middle
    SSLCertificateKeyFile /etc/httpd/keys/www.meusite.com.br-2009.key

    <Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
    </Files>

    <Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
    </Directory>

    SetEnvIf User-Agent ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0

    CustomLog logs/ssl_request_log \
    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

    Desde já agradeço muito a ajuda,

    Luiz Dartora.

  2. #2

    Padrão

    Existem duas formas. A mais simples é usar o Redirect na declaração do VirtualHost que você deseja que seja redirecionado. Por exemplo,

    <VirtualHost *:80>
    # coisas

    Redirect / https://meu.site.seguro.com/

    # mais coisas
    </VirtualHost>

    A segunda, é fazê-lo com o ModRewrite:

    RewriteEngine On
    RewriteCond %{HTTPS} != on
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]

    Para mais informações, consulte Let me google that for you
    p, li { white-space: pre-wrap

  3. #3

    Padrão SOBRE O DIRECIONAMENTO

    Pedro,

    Uma pergunta, qualquer uma dessas formas, tenho que colocar no *.80 e *.443, ficando dessa forma.

    <VirtualHost *:80 >

    RewriteEngine On
    RewriteCond %{HTTPS} != on
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
    #Redirect / https://www.meusite.com.br
    </VirtualHost>

    <VirtualHost *:443>

    RewriteEngine On
    RewriteCond %{HTTPS} != on
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
    #Redirect / https://www.meusite.com.br
    </VirtualHost>

  4. #4

    Padrão Direcionar http para https

    Pedro,

    Ao fazer dessa forma abaixo:

    RewriteEngine On
    RewriteCond %{HTTPS} != on
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]


    Aparece a seguinte mensagem:

    Starting httpd: Syntax error on line 22 of /etc/httpd/conf.d/vhosts.conf:
    RewriteCond: bad flag delimiters

    E da outra forma:

    <VirtualHost *:80>
    # coisas

    Redirect / https://meu.site.seguro.com/

    # mais coisas
    </VirtualHost>

    Ao digitar www.meusite.com.br não direciona para minha pagina, nenhuma delas.

    Desde já muito obrigado,

    Luiz Dartora.

  5. #5

    Padrão

    Bom, no meu funcionam as duas abordagens. Porém, vendo os resultados da pesquisa que eu enviei para você, no primeiro resultado tem a seguinte forma:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    Dá uma testada aí e retorna se deu certo...

  6. #6

    Padrão Direcionar http para https

    Pedro,

    Fica então dessa forma:

    <VirtualHost *:80 >
    DocumentRoot /eu/meusite/
    ServerName www.meusite.com.br
    ServerAdmin [email protected]
    ErrorLog /var/www/sol/logs/error.log
    CustomLog /var/www/sol/logs/access.log combined
    RewriteEngine On
    RewriteCond %{HTTPS} != off
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]

    </VirtualHost>

    <VirtualHost *:443>
    DocumentRoot /eu/meusite/
    ServerName www.meusite.com.br
    ServerAdmin [email protected]
    ErrorLog /var/www/sol/logs/error.log
    CustomLog /var/www/sol/logs/access.log combined
    RewriteEngine On
    RewriteCond %{HTTPS} != on
    RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]

    Eu só posso testar amanhã pela manhã, pois não posso parar o serviço agora, assim amanhã te aviso como ficou.

    Mas novamente muito obrigado,

    Luiz Dartora.

  7. #7

    Padrão

    Pedro,

    Desculpe, eu mandei errado, o correto é esse abaixo:

    Pedro,

    Uma pergunta, qualquer uma dessas formas, tenho que colocar no *.80 e *.443, ficando dessa forma.

    <VirtualHost *:80 >

    RewriteEngine On
    RewriteCond %{HTTPS} != off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    </VirtualHost>

    <VirtualHost *:443>

    RewriteEngine On
    RewriteCond %{HTTPS} != on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    </VirtualHost>

    Luiz Dartora.

  8. #8

    Padrão

    Não entendi direito. Você poderia mandar seu arquivo de configuração de hosts virtuais completo? Colocando só em partes fica complicado avaliar o que está acontecendo.

    Mas já respondendo, caso sua configuração esteja correta, basta acrescentar a configuração no virtual host que da porta 80.

  9. #9

    Padrão

    Com a alteração que você me passou ficou dessa forma:

    <VirtualHost *:80 >
    DocumentRoot /eu/meusite
    ServerName www.meusite.com.br
    ServerAdmin [email protected]
    ErrorLog /var/www/meusite/logs/error.log
    CustomLog /var/www/meusite/logs/access.log combined
    JkMount /remote site
    JkMount /remote/* site
    JkMount /mapas site
    JkMount /mapas/* site
    JkMount /pag site
    JkMount /pag/* site
    JkMount /pag1 site
    JkMount /pag1/* site
    JkMount /pag2 siteh
    JkMount /pag2/* siteh
    RewriteEngine On
    RewriteCond %{HTTPS} != off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    </VirtualHost>

    <VirtualHost *:443>
    DocumentRoot /eu/meusite
    ServerName www.meusite.com.br
    ServerAdmin [email protected]
    ErrorLog /var/www/meusite/logs/error.log
    CustomLog /var/www/meusite/logs/access.log combined
    JkMount /remote site
    JkMount /remote/* site
    JkMount /mapas site
    JkMount /mapas/* site
    JkMount /pag site
    JkMount /pag/* site
    JkMount /pag1 site
    JkMount /pag1/* site
    JkMount /pag2 siteh
    JkMount /pag2/* siteh
    RewriteEngine On
    RewriteCond %{HTTPS} != on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    LogLevel warn

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+M EDIUM:+LOW:+SSLv2:+EXP

    SSLCertificateFile /etc/httpd/keys/www.meusite.com.br-2009.crt
    SSLCACertificateFile /etc/httpd/keys/www.meusite.com.br-2009.middle
    SSLCertificateKeyFile /etc/httpd/keys/www.meusite.com.br-2009.key

    <Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
    </Files>

    <Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
    </Directory>

    SetEnvIf User-Agent ".*MSIE.*" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0

    CustomLog logs/ssl_request_log \
    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

    Luiz Dartora

  10. #10

    Padrão Direcionar http para https.

    Pedro,

    Bom dia, voltou a dar o mesmo erro, veja abaixo:

    service httpd restart
    Stopping httpd: [FAILED]
    Starting httpd: Syntax error on line 20 of /etc/httpd/conf.d/vhosts.conf:
    RewriteCond: bad flag delimiters

    Fiz da forma que você indicou, mas não estou tendo sucesso,

    Luiz Dartora.

  11. #11

  12. #12

    Padrão Direcionar http para https.

    Tem essa informação na linha 20.

    RewriteCond %{HTTPS} != off

    Luiz Dartora.

  13. #13

    Padrão

    Então troque por:

    RewriteCond %{HTTPS} off

    Me diga uma coisa, essa linha está no VHost da porta 80, certo? É lá que ele deve estar.

  14. #14

    Padrão Direcionar http para https.

    Pedro,

    Eu tenho em ambas as portas, então na 443 não é necessário essas linhas? Como você pode ver abaixo:

    <VirtualHost *:80 >
    DocumentRoot /eu/meusite
    ServerName www.meusite.com.br
    ServerAdmin [email protected]
    ErrorLog /var/www/meusite/logs/error.log
    CustomLog /var/www/meusite/logs/access.log combined
    JkMount /remote site
    JkMount /remote/* site
    JkMount /mapas site
    JkMount /mapas/* site
    JkMount /pag site
    JkMount /pag/* site
    JkMount /pag1 site
    JkMount /pag1/* site
    JkMount /pag2 siteh
    JkMount /pag2/* siteh
    RewriteEngine On
    RewriteCond %{HTTPS} != off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}


    </VirtualHost>

    <VirtualHost *:443>
    DocumentRoot /eu/meusite
    ServerName www.meusite.com.br
    ServerAdmin [email protected]
    ErrorLog /var/www/meusite/logs/error.log
    CustomLog /var/www/meusite/logs/access.log combined
    JkMount /remote site
    JkMount /remote/* site
    JkMount /mapas site
    JkMount /mapas/* site
    JkMount /pag site
    JkMount /pag/* site
    JkMount /pag1 site
    JkMount /pag1/* site
    JkMount /pag2 siteh
    JkMount /pag2/* siteh
    RewriteEngine On
    RewriteCond %{HTTPS} != on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}


    Luiz Dartora.