1. ホーム
  2. php

[解決済み] PHPで完全なURLを取得する

2022-03-17 13:37:49

質問

私はこのコードを使って、完全なURLを取得しています。

$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

問題は、私がいくつかのマスクを使って .htaccess そのため、URLで表示されるものが、必ずしもファイルの実際のパスとは限りません。

必要なのは、URLに書かれていること、それ以上でも以下でもない、完全なURLを取得することなのです。

サーバー上のファイルの実際のパスではなく、ウェブブラウザーのナビゲーションバーに表示される方法を取得する必要があります。

解決方法は?

をご覧ください。 $_SERVER['REQUEST_URI'] は、すなわち

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

(なお、二重引用符で囲まれた文字列の構文は 完全に正しい )

HTTP と HTTPS の両方に対応したい場合は

$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

編集後記 このコードを使用すると セキュリティへの影響 . クライアントは HTTP_HOST と REQUEST_URI に任意の値を設定することができます。