2011年6月17日金曜日

CORESERVER で 共有SSL にリダイレクトする方法(PHP)

CORESERVER で 共有SSL にリダイレクトする方法(PHP)
例) http://default.com/ → https://ss1.coressl.jp/default.com/


CORESERVER で、共有SSL を設定する方法として
.htaccess の RewriteRule で行う方法があります。

RewriteEngine on
RewriteRule ^(.*)$ https://ss1.coressl.jp/%{HTTP_HOST}%{REQUEST_URI}/ [L,R]

しかし、ループエラーが発生して、どうしてもうまくいきませんでした。
xampp ではうまく置換してくれるのに、coreserver ではダメです。

原因ははっきりわかりませんが、サーバー側のドメイン名の置換のときにへんなループに陥っているような感じでしょうか・・・

■そこで、meta タグの refresh でやってみました。

if( $_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.0' ) { // http のとき
print '<meta http-equiv="refresh" content=";URL=https://ss1.coressl.jp/default.com/">';
}

これだとうまくいきました。

補足説明:<HTML>の<META>タグを PHP で動的に書き換えています。
http・・・でアクセスしたときは、https・・・で refresh します。そして
https・・・でアクセスしたときには、refresh しない仕組みにしておけばOKです。