2008-12-19 23 views
2

所以,我得到了ZF MVC的網站,要強制對所有SSL連接下我/結賬/ 我試圖使用mod_rewrite對於這一點,所以我的.htaccess應該是這樣的:如何獲得SSL + mod_rewrite + Zend Framework MVC一起工作?

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的熟練度非常糟糕。也許有人可以幫我解決這個問題?

回答

3

Tim Lytle的回答主要在那裏。

我會改變它是一個更嚴格的檢查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

這可能對你有所幫助,添加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] 
相關問題