やりたい事
・「http://xxx.login.php」から「https://xxx.login.php」に飛ばしたい。
・上記ページのみSSLでhttp;//xxxはそのままにしておきたい。
環境
IIS 5.2
PHP Version 5.2.5
Windows server 2003 R2
最初に試した事(※こちらでは問題は解決しませんでした)
IISマネージャーから該当ページのプロパティから下記のように設定。
参考:http://www.atmarkit.co.jp/ait/articles/0908/07/news108.html
しかし、Google Chrome・IE以外のブラウザではリダイレクトされませんでした。
PHPで解決
login.phpにリダイレクト処理を入れたlogin_ssl.phpをincludeしました。
login.php
<?php
include_once('./login_ssl.php');
///
?>
login_ssl.php
<?php
/*
http ⇒ httpsにリダイレクト
*/
if (!(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')) {
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: https://xxx/login.php" );
}
?>
これで無事どのブラウザでもhttpsに飛ぶようになりました。