簡體   English   中英

Symfony 2 Post / Redirect / Get模式重定向到HTTPS問題

[英]Symfony 2 Post/Redirect/Get pattern redirect to HTTPS issue

我在Symfony 2中使用PRG模式,以避免在單擊“后退”按鈕后顯示“確認表單重新提交”頁面。當網站位於http://上,但網站(生產)位於https://上時,一切正常模式不起作用,並且再次出現“確認表單重新提交” :(

基本上我有A,B,C頁。

表單

B:處理表格並將303重定向到C

C:顯示一些頁面

我正在像這樣在Symfony中進行重定向:

return $this->redirect('confirmation', 303);

在所有動作的路線中,我包括:

schemes="https", host="%secured_host_name%"

我如何重定向使其也可以在HTTPS://上運行?

由於重定向使用絕對URI,因此必須注意代理服務器(HTTP-> HTTPS)和反向代理服務器。 如果您的應用程序使用戶使用SSL隧道訪問您的站點,這也會引起問題。 (您可以使用Referer標頭來發現用戶實際輸入的域和端口。)

解決方案:將您的代理添加到框架配置中的trusted_proxies中:

# app/config/config.yml
# ...
framework:
    trusted_proxies:  [192.0.0.1, 10.0.0.0/8]

或者,如果您不知道代理IP:

// web/app.php

// ...
Request::setTrustedProxies(array('127.0.0.1', $request->server->get('REMOTE_ADDR')));

$response = $kernel->handle($request);
// ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM