Я использую правила перезаписи ниже, чтобы перенаправить 2 страницы php на https (для защиты данных пользователя), но всякий раз, когда я нажимаю на какие-либо ссылки на этих страницах php, они перенаправляют с включенным https, и страница отображается неправильно.
Правила внизу были предназначены для перенаправления любых других страниц обратно на http, но они не работают. Любые советы будут высоко ценится!
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/securepage1.php$ [NC]
RewriteRule ^(.*)$ https://www.example.com$1 [L,R=301]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/securepage2.php$ [NC]
RewriteRule ^(.*)$ https://www.example.com$1 [L,R=301]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/securepage1.php$ [NC]
RewriteCond %{REQUEST_URI} !^/securepage2.php$ [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
Попробуйте включить протоколирование чтобы получить четкое представление о том, какие шаги терпят неудачу:
RewriteLog /path/to/log
RewriteLogLevel 2
Вы можете использовать значения больше 2 для уровня журнала, но имейте в виду, что это воля влияют на производительность вашего сервера, поэтому будьте осторожны при запуске этого на тяжелом производственном экземпляре.
Теперь несколько мыслей о безопасности. Если вы достаточно беспокоитесь о защите данных на определенных страницах (но не на других), тогда лучший вопрос, который стоит задать: стоит ли делать только 2 страницы на вашем сайте заслуживающими доверия? Если я перейду к http://example.com
и быть перехваченным в атаке "Человек посередине" (MIM), действительно ли вашему пользователю важно, https://example.com/securepage1.php
безопасен, когда атака MIM заставляет меня http://badpage.com/securepage1.php
? Другими словами, если это часть интерактивного сайта, защита двух защищенных страниц ничего не дает, потому что пользователь не может доверять сайту с самого начала.