2012-05-17 34 views
2

我設置了symfony,以便登錄/註冊爲https路由並正常工作。登出時用戶被重定向到登錄頁面時出現問題,這裏symfony2重定向到使用錯誤端口並失敗的https://domain.com:80/login。我發現解決這個問題的唯一辦法是把絕對URL中配置這樣Symfony2重定向到https路由失敗(使用錯誤的端口)

logout: 
      path: /logout 
      target: https://www.domain.com/login 

,但我敢肯定,必須有一個更好的辦法來解決這個問題。

任何想法需要做什麼?

謝謝:)

回答

0

這發生在任何重定向,例如,從一個網址沒有破折號與前圍一個URL,它會重定向到正確的協議(https),但到了錯誤的端口(80)。 AFAIK似乎Symfony路由依賴於SERVER_PORT全局,而不是請求URI中指定的內容。所以我唯一的解決方法是在symfony2開始之前將其設置爲app.php,$_SERVER['SERVER_PORT'] = 443; ,但它現在正在工作。

2

如果您正在使用nginx的比這蟎解決該問題: http://blog.servergrove.com/2011/04/04/symfony2-quick-tip-generateurl-with-https-on-nginx/

缺少的FastCGI PARAM:

fastcgi_param HTTPS on; 
+0

謝謝,我用nginx + php-fpm並添加HTTPS參數解決了問題! –

+0

我遇到了類似的問題,因爲我會將HTTP和SSL放入同一個nginx服務器配置條目中,並且在那裏有「fastcgi_param HTTPS」。因此,訪問'/保護'重定向到https:// server:80/login ...分離成兩個單獨的nginx服務器配置(兩個單獨的文件在站點 - 可用)工作。 – jrg

2

如果您使用的清漆:

$_SERVER['HTTP_X_FORWARDED_PORT'] = 443; 
相關問題