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]