Как заставить SSL + mod_rewrite + Zend Framework MVC работать вместе? - PullRequest
2 голосов
/ 19 декабря 2008

Итак, я получил сайт 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. Сорта стирает спецификацию протокола.

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

Ответы [ 2 ]

3 голосов
/ 03 января 2009

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

Я бы изменил его, чтобы быть более строгим при проверке 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]
1 голос
/ 19 декабря 2008

Это может помочь вам, добавьте 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]
...