Как получить SSL + mod_rewrite + Zend Framework MVC, работающий вместе?

Итак, у меня есть сайт ZF MVC и вы хотите принудительно подключить SSL-соединение ко всему под моим / checkout / я пробовал использовать mod_rewrite для этого, поэтому мой .htaccess будет выглядеть так:

RewriteEngine on RewriteRule (\/checkout.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R] RewriteRule !\.(js|ico|gif|jpg|png|css|swf|xml|avi|flv|mov|mp3|wav)$ index.php [L] 

Разумеется, он действительно использует SSL, но второе правило, это ZF, и перенаправляет все на index.php sorta, стирает спецификацию протокола.

К сожалению, мой уровень владения mod_rewrite ужасно ужасен. Может быть, кто-то может помочь мне решить это?

Ответ Тима Лилта в основном есть.

Я бы изменил его немного более строгим при проверке HTTPS, а флагам нужен разделитель.

 RewriteCond %{HTTPS} !^on$ RewriteRule ^/checkout/? https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteRule !\.(js|ico|gif|jpg|png|css|swf|xml|avi|flv|mov|mp3|wav)$ index.php [L] 

Это может помочь вам добавить RewriteCond только в том случае, если соединение не является SSL, затем добавьте параметр «L» в ваше правило переадресации, чтобы переписать обработку в этой точке (поэтому последнее правило не отменяет перенаправление SSL).

 RewriteCond %{HTTPS} !on RewriteRule (\/checkout.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [RL] RewriteRule !\.(js|ico|gif|jpg|png|css|swf|xml|avi|flv|mov|mp3|wav)$ index.php [L]