パスワードの入力時にのみApacheリダイレクト
-
02-07-2019 - |
質問
マシンの1つでphpMyIDをセットアップし、パスワードが送信されている場合にのみApacheをHTTPSにリダイレクトしようとしています。すべてのopenidトラフィックをリダイレクトする元のセットアップが機能しなかったため、これを行っています。stackoverflowは自己署名証明書を好みません。これは私が書いた新しいルールですが、機能していません:
RewriteRule http://%{SERVER_NAME}/openid/index.php(\?.+)$ https://%{SERVER_NAME}/openid/index.php$1
解決
ポート(httpまたはhttpd)とクエリ文字列の両方をテストするには、Condを使用する必要があります。
RewriteCond %{SERVER_PORT} 80
RewriteCond %{QUERY_STRING} (.+)
RewriteRule /openid/index.php https://%{SERVER_NAME}/openid/index.php?%1
.htaccessの場合、代わりに使用する必要があります
RewriteCond %{SERVER_PORT} 80
RewriteCond %{QUERY_STRING} (.+)
RewriteRule openid/index.php https://%{SERVER_NAME}/openid/index.php?%1
他のヒント
より良い解決策は次のとおりです。
RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^openid/index\.php$ https://%{SERVER_NAME}/openid/index.php
説明: RewriteCond%{SERVER_PORT} 80
は、 80
のみを含むポートにも一致します。同じことがパターン openid / index.php
にも当てはまります(“ 。
”には任意の文字を使用できます)。また、代替のクエリが指定されない限り、mod_rewriteは最初に要求されたクエリを代替に自動的に追加するため、クエリを追加する必要はありません。
所属していません StackOverflow