2010-12-02 2 views

Antwort

0

Vergessen Sie nicht, auf mögliche Nicht-Standard-Ports ausgeführt wird. Und testen Sie immer, ob Ihre Anfrage über HTTPS erfolgt ist. Testen Sie nicht die Portnummern, um SSL zu ermitteln.

 
$uri = "http".($_SERVER['HTTPS']?'s':'')."://".$_SERVER['SERVER_NAME'].(($_SERVER['HTTPS']&&$_SERVER['SERVER_PORT']!='443')||(!$_SERVER['HTTPS']&&$_SERVER['SERVER_PORT']!='80')?":".$_SERVER['SERVER_PORT']:"").$_SERVER['REQUEST_URI']; 
2

Sie schreiben es manuell "http: // www.". $ _ SERVER ["SERVER_NAME"];

+0

dank Kerl muss ich es auch tun, aber nach einem bestimmten Begriff suchen, aber hoffen, dass dies für mich helfen – hunter

2

Was ist damit? :

$ self = "http: //". $ _ SERVER ["SERVER_NAME"]. $ _ SERVER ["PHP_SELF"]. "?". $ _ SERVER ["QUERY_STRING"]. "";

Sie können sogar die Argumente nach dem Seitennamen

+0

würde ich nicht verwenden * PHP \ _self * aber * REQUEST \ _URI *. – Gumbo

+0

Kombinieren Antworten für eine saubere Lösung können Sie tun: Wenn ($ _SERVER ['SERVER_PORT'] == "443") {$ self = "https: //". $ _ SERVER ["SERVER_NAME"]. $ _ SERVER ["REQUEST_URI "]; } else {$ self = "http: //". $ _ SERVER ["SERVER_NAME"]. $ _ SERVER ["REQUEST_URI"]; } – ceyquem

+0

oder mit HTTPS "http". ($ _ SERVER ['HTTPS']? "S": ""). ": //", aber der richtige Weg ist, den Port anzufügen, und überprüfen, ob ssl ist anschalten, an diesem Port, technisch könnte der Standard http ssl einschalten, in diesem Fall wäre die URL "https: //www.myexample.com: 80 /' – Rahly

0

$_SERVER['SERVER_NAME'] enthält bereits das „www“ erhalten, wenn das der Host angefordert wurde. Alles, was Sie anhängen müssen, ist das Protokoll (http: // oder https: //).

können Sie bestimmen, welche die Site wurde durch einen Blick auf den Hafen erreicht durch - $_SERVER['SERVER_PORT'] 443 für https sein wird: //

Verwandte Themen