10

PHPマニュアルには、次のように記載されています。

HTTP/1.1 は » Location: への引数として絶対 URI を必要とします: スキーム、ホスト名、絶対パスを含みますが、一部のクライアントは相対 URI を受け入れます。

どこでも HTTPS接続を好むユーザーを容易にするために、PHP スクリプトのヘッダーを次のように変更することを考えています。

header("Location: http://www.example.com/");header("Location: //www.example.com/");

上記のコードが自分の Firefox ブラウザで動作することをテストしましたが、それが賢明かどうかはわかりません。$_SERVERまたは、変数からプロトコルを抽出して入れるべきかどうか。

4

2 に答える 2

9

HTTPbisの更新により、相対 URI が許可されます。特に言及されていませんが、これにはプロトコル関連の URL が含まれます。

(これは何よりも、確立されたブラウザーの動作を文書化する HTTP/1.1 仕様の更新です。)

于 2012-09-15T10:54:04.093 に答える
2

HTTP プロトコルで提案されているように、絶対 URIを使用する必要があります。$_SERVER['HTTPS']次のような条件で、変数を使用してプロトコルを検出できます。

$protocol = "http" . (!empty($_SERVER['HTTPS']) ? "s" : "");
于 2012-09-15T10:50:28.783 に答える