Apache Redirect somente quando digitar uma senha
-
02-07-2019 - |
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
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.