Я вставляю сюда рабочий код для дальнейшего использования:

ичок в этом сообществе, но я нашел это действительно полезным время от времени.

Я много искал ответ, но не нашел ничего, что мне нужно. Я пытался решить это самостоятельно, но я все еще получаю ошибки, поэтому я надеюсь найти кого-то, кто может показать мне правильный путь ... :-)

У меня есть «классический» веб-сайт ZF со многими URL-адресами контроллера / действия, которые перенаправляются в index.php с помощью файла .htaccess.

Теперь, что мне нужно, это перенаправить пару контроллеров на соединение https ssl, исключая некоторые действия обоих контроллеров.

Я пытался это сделать так:


Options +FollowSymLinks

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^mydomain\.tld [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond $1 ^!((member|shop)/(?!(index|login))(.*))
RewriteRule ^(.*) http://%{HTTP_HOST}/$1 [L,R=301]

RewriteCond %{HTTPS} off
RewriteCond $1 ^((member|shop)/(?!(index|login))(.*))
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !\.(js|ico|gif|jpg|png|css|swf|pdf|txt)$ index.php

Кажется, это работает, когда я перехожу к / member controller. Но тогда, когда я перехожу на другой контроллер, например / index или / about, он не перенаправляет на http соединение (порт 80), и если я пытаюсь немного изменить переписать условие regex иногда делает цикл перенаправления, и браузер выдает мне уведомление, блокирующее соединение с сайтом.

Есть ли кто-нибудь, кто мог бы показать мне правильный синтакс для использования в моих условиях перезаписи, чтобы позволить обоим контроллерам (исключая данные действия) при подключении https и возвращаться к стандартному соединению http при смене контроллера?

Заранее спасибо.

Alessandro

Ответы на вопрос(4)

Ваш ответ на вопрос