2013-03-02 27 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