Tomcat

當tomcat重定向發生時如何將http更改為https

  • December 9, 2016

我正在使用彈性豆莖單實例。因此配置了 apache,並且 tomcat 正在監聽 http 埠 8080。Apache 配置為使用 ssl https 443。

問題是tomcat使用http重定向。但我無法設置 apache 將 http 更改為 https。因此,混合內容錯誤會導致應用程序無法正常工作。

到目前為止,我嘗試了以下設置:在虛擬主機 *:80 中,我將

<IFModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/%$1 [R, L]
</IFModule>

我也試過

RedirectMatch ^(/.*)$ https://thepennantrace.com/$1

兩者都沒有工作。

我想知道設置它的正確方法是什麼?(應用程序通過facebook執行,如果直接訪問它不會顯示任何錯誤)

您可能希望在應用程序級別解決此問題。您應該建構到新位置的完整路徑。這應該由三個部分組成:協議 (https)、主機名(來自請求標頭)和路徑(根據應用程序的要求)。您可能需要一個為應用程序構造連結以確保一致性的實用程序類。

對於連結,您可能希望使用相對路徑。這些將使用它們到達的協議發送到原始主機。

重定向由重定向產生的請求,仍然會給您留下混合內容。這是因為初始重定向將是 http 而不是 https。

在 Apache 伺服器級別,有一個模組可以將響應中的路徑從 http 重寫為 https。這是修復應用程序發送的損壞連結的一種方法。但是,我會將其限制為您無權訪問的應用程序。

引用自:https://serverfault.com/questions/800997