Я действительно надеюсь, что кто-то знает, что я делаю здесь неправильно, потому что я точно не знаю!
У нас есть определенная страница на нашем сайте, на которой есть информация об остатке на счете, и мы хотим сделатьэто безопасно с SSL.Но мы хотим, чтобы эта страница была безопасной.У меня есть следующее на localhost: 80 virtualhost, и он отлично работает:
RewriteCond %{HTTPS} off
RewriteCond %{SCRIPT_FILENAME} \/account\.php(.*) [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [QSA,L]
Однако, как вы можете догадаться, мы хотим, чтобы все другие страницы просто использовали HTTP.Итак, я вставил этот маленький фрагмент в мой localhost: 443 virtualhost:
RewriteCond %{HTTPS} on
RewriteCond %{SCRIPT_FILENAME} !\/account\.php(.*) [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [QSA,L]
... И вот тогда возникает проблема.У меня нет проблем с возвратом к HTTP, но когда я нажимаю ссылку, чтобы перейти на страницу учетной записи, она меняется на HTTPS, но я сразу получаю сообщение об ошибке 302.Я не получаю этот ответ, когда я удаляю либо одно из этих правил перезаписи, это происходит только тогда, когда они там есть.
Я попытался заменить [QSA]
на [R]
и [R=301]
, безрезультатно.
(Я знаю, что включение / выключение %{HTTPS}
немного избыточно;))
Итак, у меня есть два вопроса:
- Есть ли что-то, что я забыл или делаю неправильно, что может быть причиной этого?
- Используется ли
[QSA]
избыточно с $1
?Мы часто используем метод GET
для указания страниц, а что нет.
Мы используем PHP 5.2.9 и Apache 2.
Большое спасибо заранее !!
Brian