Apache Redirect только при вводе пароля
Я устанавливаю phpMyID на одном из моих компьютеров, и я пытаюсь заставить apache перенаправлять на HTTPS только при отправке пароля. Я делаю это, так как моя первоначальная настройка перенаправления всего трафика openid не работала stackru не нравится мой самозаверяющий сертификат. Это новое правило, которое я написал, но оно не работает:
RewriteRule http://%{SERVER_NAME}/openid/index.php(\?.+)$ https://%{SERVER_NAME}/openid/index.php$1
2 ответа
Вам нужно использовать Cond для проверки как порта (http или httpd), так и строки запроса:
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
Explaination: RewriteCond %{SERVER_PORT} 80
также соответствует портам, которые просто включают 80
, То же самое относится к шаблону openid/index.php
(где ".
Также может быть любой персонаж) И добавление запроса не является необходимым, поскольку mod_rewrite автоматически добавляет первоначально запрошенный запрос к замене, если только запрос замены не задан.