Heim >Backend-Entwicklung >PHP-Tutorial >Warum stellt $_SERVER[\'REQUEST_URI\'] nicht die vollständige URL auf Windows-/IIS-Servern bereit?

Warum stellt $_SERVER[\'REQUEST_URI\'] nicht die vollständige URL auf Windows-/IIS-Servern bereit?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 16:16:29920Durchsuche

Why Isn't $_SERVER[

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn