Apache Redirect только при вводе пароля - PullRequest
2 голосов
/ 26 сентября 2008

Я устанавливаю phpMyID на одном из моих компьютеров и пытаюсь заставить apache перенаправлять на HTTPS только при отправке пароля. Я делаю это, так как моя первоначальная настройка перенаправления всего трафика openid не работала stackoverflow не нравится мой самозаверяющий сертификат. Это новое правило, которое я написал, но оно не работает:

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

Ответы [ 2 ]

2 голосов
/ 26 сентября 2008

Вам нужно использовать 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
0 голосов
/ 13 января 2009

Лучшее решение было бы:

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

Объяснение: RewriteCond %{SERVER_PORT} 80 также соответствует портам, которые включают 80. То же самое относится к шаблону openid/index.php (где «.» также может быть любым символом). И добавление запроса не является необходимым, поскольку mod_rewrite автоматически добавляет первоначально запрошенный запрос к замене, если только запрос замены не задан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...