.shop1年無料はかなり罠。
経緯
無料のWEBサーバーを使いたいという話で、検索して出てきたXREA Freeを勧めたらそれを使うことになった。
WEBサイトを作ったということでアドレスを聞いたら独自ドメイン(.shop)だった。
無料だという。
10か月ほど経ったあたりで、そのうち独自ドメインの無料期間が切れるってアナウンスがあった。
まあそりゃそうだと思った。
どうでもよくなかったので対策を考えた。
- 料金を払って継続する
- 無料ドメインに切り替える
WEBサイトは欲しいけどドメインは固執しないということで、移行しようねって流れになった。
構想
- 独自ドメインにアクセスしてきたら無料ドメインに自動転送させる。
- 転送によるアクセスだったら、URL変わったよってアナウンスを出す。
超簡単。
アナウンスはURLにパラメータを付けて判別してやっていくことにする。
ということで、独自→無料転送時のURLはこんな感じにする。
http://xxx.xxxx.xrea.com/from=old転送の設定
まずはXREAのコントロールパネルに行って各ドメインの設定を変える。
無料ドメインへのアクセスを独自ドメインに転送するようになってるので変えましょう。
| Main | 無料ドメインにする |
| Transfer | 独自ドメインにする 転送用のURLを設定する |
| Transfer | www.独自ドメインにする 転送用のURLを設定する |
www有無それぞれを設定しないとアクセスエラーになるので注意。
mainが無料ドメインになってたらいいので、転送自体はコンパネじゃなく.htaccessとかhtmlに仕込むとか色々ある。まあ、コンパネで済ませたほうがいいよね。
アナウンス設定
アナウンスのHTMLと表示ギミック発火のJS。
<div id="domain-announcement" style="display: none; background-color: #fff3cd; color: #856404; padding: 15px; text-align: center; border-bottom: 2px solid #ffeeba; font-weight: bold; font-size: 14px; line-height: 1.5;">
⚠️ 当サイトはURLを変更しました。お手数ですが、現在のページでの再ブックマークをお願いいたします!
</div>
<script>
window.addEventListener('DOMContentLoaded', (event) => {
// URLのパラメータ(?from=old)を解析
const urlParams = new URLSearchParams(window.location.search);
// パラメータに「from=old」が含まれているかチェック
if (urlParams.get('from') === 'old') {
// ① 条件に合致したので、アナウンス用バナーを表示する
const announcementBar = document.getElementById('domain-announcement');
if (announcementBar) {
announcementBar.style.display = 'block';
}
// ② 【重要】ユーザーがブックマークする前に、URL欄から「?from=old」を消去する
// (画面のリロードは発生せず、URLの見た目だけが綺麗になります)
const cleanUrl = window.location.protocol + "//" + window.location.host + window.location.pathname;
window.history.replaceState({}, document.title, cleanUrl);
}
});
</script>「パラメータがあれば表示する」のはいいとして。
パラメータがついたままだとアクセスするたびに表示されちゃうから、同時にパラメータの削除も行っている。
SSL化
XREAは無料ドメインにSSL(無料SSL)を付与できないっぽい。
その代わりに「ss1.xrea.com」を使えばいいらしい。
つまり、これが
http://xxx.xxxx.xrea.com/こうなる。
https://ss1.xrea.com/xxx.xxxx.xrea.com/ダサいのは諦めてるとして、ただただアドレスが長いのがしんどい。
ちなみにファイルを格納するディレクトリは変わらないので、FTP周りで触るものはない。
ブラウザによってアラートが出たりするからSSLを優先するほうが賢いと思います。


コメント