Принудительное подмножество веб-страниц как HTTPS - PullRequest
0 голосов
/ 12 июля 2011

Я бы хотел установить подмножество веб-страниц на https и все другие веб-страницы как http.В htaccess я использую следующий скрипт, который я нашел в другом посте, но он не работал ...

RewriteCond %{HTTPS} off
RewriteRule ^(login|signup)\.php https://%{HTTP_HOST}%{REQUEST_URI} [R,L,QSA]

RewriteCond %{HTTPS} on
RewriteCond ${REQUEST_URI} !(login|signup)\.php
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L,QSA]

HTTP принудительно принудительно, как и должно быть, HTTPS принудительно, как и должно быть, но, например,https://mywebsite.com/signup вызывает ошибку бесконечного цикла в моем браузере.Есть идеи, что пойдет не так?

Я перешел на код следующего, который, кажется, работает, но теперь SSL реализован лишь частично из-за защищенных и небезопасных элементов на веб-странице.Я проверил URL-адреса, например, для изображений, таблиц стилей и внешних файлов javascript, но все они относительные и не должны вызывать проблем ... Если кто-то знает, как с этим справиться, я буду рад это услышать.

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/login$ [OR]
RewriteCond %{REQUEST_URI} ^/signup$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !login$
RewriteCond %{REQUEST_URI} !signup$
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}  [R,L]

1 Ответ

0 голосов
/ 12 июля 2011
  1. Попробуйте добавить эту строку где-нибудь поверх вашего .htaccess:

    Options +FollowSymLinks -MultiViews

  2. Возможно, у вас есть другие правила, которые делаютэто перенаправление - было бы хорошо, если бы вы предоставили все содержимое вашего файла .htaccess.

  3. Возможно, вы перенаправили внутри самого скрипта php.

В любом доступе - если вы можете редактировать конфигурационные файлы Apache (httpd.conf или httpd-vhost.conf), вы можете включить отладку перезаписи (RewriteLoglevel 9) и посмотреть, что именно происходит- это лучший вариант (если можно).

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