Come get SSL + mod_rewrite + Zend Framework MVC funziona insieme?

Quindi, ho ottenuto il sito ZF MVC e voglio forzare la connessione SSL su tutto sotto il mio / checkout / Ho provato a utilizzare mod_rewrite per questo, quindi il mio .htaccess sarebbe simile a questo:

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] 

Abbastanza sicuro, fa kick in SSL, ma la seconda regola, che è specifica ZF e reindirizza tutto a index.php in qualche modo cancella le specifiche del protocollo.

Sfortunatamente il mio livello di competenza con mod_rewrite è incredibilmente terribile. Forse qualcuno potrebbe aiutarmi a risolvere questo?

La risposta di Tim Lytle è principalmente lì.

Lo cambierei essere un po 'più severo nel controllo HTTPS e le bandiere hanno bisogno di un delimitatore.

 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] 

Questo può aiutarti, aggiungi il RewriteCond per applicare solo quando la connessione non è SSL, quindi aggiungi l'opzione "L" alla regola di reindirizzamento in modo da riscrivere l'interruzione dell'elaborazione in quel punto (quindi l'ultima regola non sovrascrive il reindirizzamento 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]