Heim >Backend-Entwicklung >PHP-Tutorial >Warum stellt $_SERVER[\'REQUEST_URI\'] nicht die vollständige URL auf Windows-/IIS-Servern bereit?
Abrufen der vollständigen URL der aktuellen Seite auf Windows-/IIS-Servern
Beim Einrichten von 301-Weiterleitungen in PHP auf einem ist ein Problem aufgetreten Windows/IIS-Server. Trotz der Verwendung von $_SERVER["REQUEST_URI"] werden nicht die erwarteten Ergebnisse erzielt. Ziel dieses Artikels ist es, das Problem zu klären und eine Lösung bereitzustellen.
Das Problem verstehen
Auf Apache-Servern enthält $_SERVER["REQUEST_URI"] normalerweise die gesamte URL. Auf Windows/IIS-Servern liefert diese Variable jedoch möglicherweise nicht das gewünschte Ergebnis. Dies liegt daran, dass IIS im Vergleich zu Apache einen anderen Mechanismus zur Anforderungsverarbeitung verwendet.
Die Lösung: Verwendung von $_SERVER['PATH_INFO']
Für Windows/IIS-Server ist die Die richtige zu verwendende Variable ist $_SERVER['PATH_INFO']. Diese Variable enthält den Teil der URL nach dem Basispfad des Skripts. In Ihrem Fall wäre es „/post-title/“.
Beispielverwendung
Hier ist ein Beispiel dafür, wie Sie $_SERVER['PATH_INFO'] verwenden können. in Ihrem PHP-Code:
<code class="php">$currentURL = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PATH_INFO'];</code>
Dieser Code weist die vollständige URL, einschließlich des Segments „/post-title/“, der Variablen $currentURL zu.
Fazit
Obwohl $_SERVER["REQUEST_URI"] üblicherweise für diesen Zweck verwendet wird, funktioniert es auf Windows/IIS-Servern möglicherweise nicht wie erwartet. Indem Sie stattdessen $_SERVER['PATH_INFO'] verwenden, können Sie die vollständige URL der aktuellen Seite auf einem Windows-/IIS-Server genau abrufen.
Das obige ist der detaillierte Inhalt vonWarum stellt $_SERVER[\'REQUEST_URI\'] nicht die vollständige URL auf Windows-/IIS-Servern bereit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!