Php 如何获取SSL+;mod#u rewrite+;Zend框架MVC协同工作?

Php 如何获取SSL+;mod#u rewrite+;Zend框架MVC协同工作?,php,zend-framework,mod-rewrite,ssl,Php,Zend Framework,Mod Rewrite,Ssl,因此,我获得了ZF MVC站点,并希望在我的/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] 果然,它确实引

因此,我获得了ZF MVC站点,并希望在我的/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_重写的熟练程度非常糟糕。也许有人能帮我解决这个问题

这可能会帮助您,添加RewriteCond以仅在连接不是SSL时应用,然后将“L”选项添加到重定向规则中,以便重写处理在该点停止(因此最后一条规则不会覆盖SSL重定向)


蒂姆·莱特尔的答案大部分都在那里

在检查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 %{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]