Php 如何获取SSL+;mod#u rewrite+;Zend框架MVC协同工作?
因此,我获得了ZF MVC站点,并希望在我的/checkout/ 我尝试使用mod_rewrite进行此操作,因此我的.htaccess如下所示: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] 果然,它确实引
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]