Ich habe einen Webserver hinter einem Load-Balancer.
Ich muss meinem .htaccess eine bedingte Weiterleitung hinzufügen, um eine Wartungsseite anzuzeigen, wenn wir die Site zur Wartung offline schalten. Dieser Teil ist unkompliziert:
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]
Ich möchte jedoch unter der Bedingung hinzufügen, dass die IP-Adresse des Besuchers, wenn sie meine eigene ist, mich nicht zur Wartungsseite weiterleitet und ich die Site so sehen und testen kann, als ob sie online wäre. Dieser Teil ist normalerweise auch unkompliziert:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]
Da sich mein Webserver jedoch hinter einem Load Balancer befindet, REMOTE_ADDR
wird er in die interne IP-Adresse des Load Balance-Servers aufgelöst.
Wie kann ich dies ändern, um nach der weitergeleiteten IP-Adresse zu suchen? Ich weiß, dass Sie in PHP $_SERVER['HTTP_X_FORWARDED_FOR']
die weitergeleitete IP-Adresse abrufen können. Ich habe ein paar Dinge ausprobiert, .htaccess
aber kein Glück:
%{X_FORWARDED_FOR}
%{HTTP:X_FORWARDED_FOR}
%{HTTP_X_FORWARDED_FOR}
LÖSUNG
Ich habe folgendes zu tun:
%{HTTP:X-FORWARDED-FOR}
.jpe
oder .jp
Dateien?