Ich versuche, meine Website auf HTTPS für alle URLs zu verschieben. Ich verwende Aws Server-Instanzen mit Load Balancer. Ich habe es geschafft, Website auf https umleiten, während auf http durch .htaccess (wie unten angegeben), aber wo immer ich Yii::app()->getBaseUrl(true).
verwendet, gibt URLs mit http, aber nicht https.yii 1.0 https in getbaseurl funktioniert nicht auf aws load balancer
Könnte jemand bitte mir helfen, dies zu sortieren. Ich möchte, dass alle URLs HTTPS sind.
Ich habe versucht, in Basisklassen zu suchen und festgestellt, dass es eine Funktion in chttprequest
Klasse, um zu überprüfen, ob die Verbindung sicher ist oder nicht, aber diese Funktion scheint nicht zu funktionieren. Bitte helfen Sie.
public function getIsSecureConnection()
{
return isset($_SERVER['HTTPS'])
&& (strcasecmp($_SERVER['HTTPS'],'on') === 0 || $_SERVER['HTTPS'] == 1)
|| isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
&& strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'],'https') === 0;
}
.htaccess (Dies funktioniert gut.)
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Vielen Dank für Ihre Hilfe, aber jetzt, wenn gesetzt baseUrl in main.php als https://example.com/ folgt und dann Yü rufen :: app() -> getBaseURL (true) in einer beliebigen Ansicht Datei, Es wird eine seltsame URL wie folgt zurückgegeben: https://example.com/http://example.com/index.php Ich checkte in ** CHttpRequest ** Klasse Funktion ** GetBaseUrl ** es hat folgenden Code drin '$ this-> getHostInfo(). $ this -> _ baseUrl: $ this -> _ baseUrl; ' hostinfo gibt den ersten Teil zurück und _baseUrl gibt den zweiten Teil zurück. es funktioniert nicht wie erwartet. –
Nun, ich kann sagen, das funktioniert nicht für mich –