Web ページまたはアプリケーションの完全な URL を決定するために、PHP にはさまざまなメカニズムが用意されています。一般的に使用される方法の 1 つは、元の質問で説明したコード ブロックで示されているように、$_SERVER['HTTP_HOST'] と $_SERVER['PHP_SELF'] の組み合わせを利用することです。
このアプローチには注意が必要です。マスクが .htaccess ファイルに実装されている場合。これらのマスクにより、アドレス バーに表示される URL が変更され、サーバー上のファイルの実際のパスとは区別される可能性があります。この問題を解決し、ブラウザのナビゲーション バーに表示される URL を正確に取得するには、$_SERVER['REQUEST_URI'] 変数の利用を検討してください。
$actual_link = "https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
二重引用符で囲まれた文字列が完全にサポートされていることに注意することが重要です。 PHPで。 HTTP と HTTPS の両方のプロトコルをシームレスに処理するには、次のコード スニペットを利用できます:
$actual_link = (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
セキュリティに関する考慮事項:
サニタイズと入力検証の対策は以下のとおりです。 $_SERVER['HTTP_HOST'] および $_SERVER['REQUEST_URI'] を操作する場合に重要です悪意のある者によって操作される可能性があるためです。特にセキュリティが重要なコンテキストでは、これらの変数に任意の値が設定されないようにすることが重要です。
以上が.htaccess マスクを使用している場合でも、PHP で完全な URL を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。