2013-03-02 97 views
3

您好目前我从Godaddy购买SSL证书并安装在LoadBalancer上。我有一个zend框架应用程序,但我有网站重定向到https的问题。以下是我的引导代码,我发现最简单的方法来我的网站重定向到https:强制HTTP到HTTPS在Zend框架中重定向

protected function _initForceSSL() { 
    if($_SERVER['SERVER_PORT'] != '443') { 
     header('Location: https://' . $_SERVER['HTTP_HOST'] . 
       $_SERVER['REQUEST_URI']); 
     exit(); 
    } 

不幸的是服务器错误回报。我在这里错过了什么?由于

更新:

在文件的根目录的.htaccess

RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ public/index.php [NC,L] 
+1

这些类型的重定向必须在.htaccess中完成,而不是在您的应用程序代码 – emaillenin 2013-03-02 12:45:59

+0

很多答案在这里 - http://serverfault.com/a/116209/79206 – emaillenin 2013-03-02 12:47:17

+0

我试过几个.htaccess但仍然没有效果,我更新我的问题以包括我的.htaccess。 – d3bug3r 2013-03-02 12:47:40

回答

1

由于您使用Zend框架,你可以用下面的代码在.htaccess文件尝试:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.yoursite.com/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ public/index.php [NC,L] 

让我知道它是否有效!

+0

谢谢让我试试.. – d3bug3r 2013-03-02 12:58:10

+0

返回此错误“此网页有一个重定向循环”可能原因是什么..? – d3bug3r 2013-03-02 13:03:39

+0

@zlippr你可以在问题中发布你的整个htaccess文件吗? – emaillenin 2013-03-02 17:21:54