Pergunta

I configuração phpMyID em uma de minhas máquinas, e eu estou tentando obter apache para redirecionar para HTTPS apenas quando uma senha está sendo submetido. Estou fazendo isso como meu de configuração original de redirecionar todo o tráfego OpenID não funcionou stackoverflow não como o meu certificado auto-assinado. Esta é a nova regra que eu escrevi, mas não o seu trabalho:

RewriteRule http://%{SERVER_NAME}/openid/index.php(\?.+)$ https://%{SERVER_NAME}/openid/index.php$1
Foi útil?

Solução

Você precisa usar um Cond de teste para ambos porta (http ou httpd) e consulta string:

RewriteCond %{SERVER_PORT} 80
RewriteCond %{QUERY_STRING} (.+)
RewriteRule /openid/index.php https://%{SERVER_NAME}/openid/index.php?%1

Se no .htaccess você deve usar em vez

RewriteCond %{SERVER_PORT} 80
RewriteCond %{QUERY_STRING} (.+)
RewriteRule openid/index.php https://%{SERVER_NAME}/openid/index.php?%1

Outras dicas

A melhor solução seria:

    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^openid/index\.php$ https://%{SERVER_NAME}/openid/index.php

Explaination: RewriteCond %{SERVER_PORT} 80 que também correspondem portas que apenas incluem 80. O mesmo se aplica à openid/index.php padrão (onde “.” também pode ser qualquer personagem). E anexando a consulta não é necessário, pois mod_rewrite anexa automaticamente a consulta originalmente solicitado ao substituto menos que a consulta do substituto é dada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top