2

最小限の変更で小さな Web サイトに HTTPS を展開しようとしています。保護したいページの上部にコードを追加しています...

<?php
$securepage ="1";

if ($_SERVER['HTTPS']=='on') {
    // we are on a secure page.
    if (!$securepage) {
      // but we shouldn't be!
      $url='http://www.mywebsite.com'.$_SERVER['REQUEST_URI'];
      header('location: '.$url);
      exit;
    }
  } else {
    // we aren't on a secure page.
    if ($securepage) {
      // but we should be!
      $url='https://www.mywebsite.com'.$_SERVER['REQUEST_URI'];
      header('location: '.$url);
      exit;
    }
  }
?>

保護したくないページ 次のものを削除します...

$securepage ="1";

しかし、ページを読み込もうとすると、ページがリダイレクトされた回数が多すぎるというエラーが表示されます。

上記のコードの何が問題なのか、誰にも指摘がありますか?

4

1 に答える 1

1

私は同じ要件でアプリを開発中です。一部のページはSSL(https)で表示する必要があり、他のページは表示する必要がありません。

SSL経由で表示する必要があるページには、

if ($_SERVER["SERVER_PORT"]==80){ header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); exit(); }

そうでないもの、つまりhttpで表示できるものについては、次を使用してください。

if ($_SERVER["SERVER_PORT"]!=80){ header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']); exit(); }

ページがホスト上のディレクトリ内にある場合は、これも役立つ可能性があります

"location:http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])";

お役に立てれば...

于 2012-12-24T00:45:33.887 に答える