0

http://domain.comへの参照が大量にある既存の Web サイトがあります。ページに https を強制したいので、簡単なコード スニペットを追加しました。

    if($_SERVER["HTTPS"] != "on") {
        die(header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]));
        exit(); // to ensure the script stops here, just in case
    }

これは機能しますが、多くのファイルのアクションに http を含む自己参照フォームがあることを除きます。たとえば、page.php には次のようなものがあります。

<form action="http://domain.com/page.php" method="post">
<input type="text" name="sample" />
<input type="submit" value="Next" />
</form>

これらすべてのフォームを壊すことなく、上記のリダイレクト スニペットを強制する方法はありますか? 目標は、「http/https」の面倒な検索/置換手順を実行して、数百のファイルのそれぞれを手動で更新する必要がないようにすることです。

4

1 に答える 1

1

いいえ、リダイレクトすることはできません。とにかく安全でないコンテンツを送信しているため、リクエストがすでに表示されているため、httpsへのリダイレクトは無意味になります。

相対URLを使用する必要があります。ここ/で、はドメイン名だけと同じです

/=domain.com

/page=domain.com/page

先頭がない場合/、URLは現在のURI(クエリ変数を除く)に相対的ですhttp://domain.com/page

アクション:foo=http://domain.com/page/foo

アクション:/foo=http://domain.com/foo

httpまたはhttpsはこの方法で保持されます。

もう1つの方法は、2つのスラッシュアクションでドメインをリードする//domain.comことです。ただし、古いIEバージョンでは取得できないと思います。

于 2013-03-21T05:33:44.720 に答える