XREA 標準ドメインを共有 SSL ドメインに転送する

2022年8月29日

はじめに

XREA の標準ドメイン (http) へのアクセスを共有 SSL ドメイン (https) に転送する設定のメモ。

設定

XREA では標準ドメインサイト (http) に対して、"https://(共有 SSL ドメイン)/(標準ドメイン)" が使えるらしい。このままだと並存しているだけなので、http から https に転送したい。

.htaccess が使えるので、転送設定する。ふつうは下記の設定でよいらしい。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://(共有 SSL ドメイン)/(標準ドメイン)/$1 [R=301,L]

これは、"%{HTTPS}" の値が off だったら (http だったら) https に転送する、ということである。ただ、これをやるとうまくいかない。どうも https アクセスでも "%{HTTPS}" の値が on にならなくて、延々と自分自身に対して転送し続けてしまうらしい。

代わりに、IP アドレスで判断してやればよいらしい。とりあえず、.html ファイルで php が動くようにする。

.htaccess

AddType application/x-httpd-php .html

これを public_html に入れる。.html ファイルに以下のコードを入れる。

<?php
  echo $_SERVER["REMOTE_ADDR"];
?>

https で .html ファイルにアクセスすると、アドレスが表示されるので、メモする。

.htaccess を以下のように書き換える。

.htaccess

#AddType application/x-httpd-php .html
RewriteEngine on
#RewriteCond %{HTTPS} off
RewriteCond %{REMOTE_ADDR} !^(共有 SSL ドメインの IP アドレス)
RewriteRule ^(.*)$ https://(共有 SSL ドメイン)/(標準ドメイン)/$1 [R=301,L]

これで http にアクセスしたら https に転送され、https にアクセスしたらなにも起こらないようになる。

参考