テクノロジー

Mixhostで独自ドメイン設定してURLを正規化してみた

Mixhostで独自ドメイン設定してURLを正規化してみた

以前にWordPress導入やLaravelで作ったサイトをデプロイするにあたってお名前.comで取得した独自ドメインをMixhostで設定したので、備忘録としてメモしておきたいと思います。

全体の流れとしては「ネームサーバーの設定」→ 「レンタルサーバーでドメイン設定 (自動SSL化)」→ 「URLの正規化 (リダイレクト設定)」になります。

Mixhostで独自ドメインを設定する手順

 ネームサーバーに設定

ネームサーバーに設定1
独自ドメインを取得したサイトでネームサーバーの設定を行います。

今回はドメインを取得した「お名前.com」の契約者専用ページから「ネームサーバー設定」のページにアクセスして設定します。

「1.ドメインの選択」で対象のドメインにチェックを入れて、「2.ネームサーバーの選択」で「その他のサービス」タブを選択。

ネームサーバーに設定2
ネームサーバー1~5の各入力欄にns1.mixhost.jp ~ ns5.mixhost.jpを入力して「確認ボタン」→「OK」をクリックして完了です。

※「+」ボタンでネームサーバーの入力欄を追加できます。

 Mixhostでドメインを登録

Mixhostでドメインを登録1
cPabelの「ドメイン」ページにアクセスして「新しいドメインを作成」をクリック。

Mixhostでドメインを登録2
取得した独自ドメインを入力して「送信」ボタンをクリックすると完了。

Mixhostでドメインを登録3
ちなみにMixhostではドメインを登録すると自動的にSSL化されるので「https」でのアクセスが可能になります。

SSL化の確認はcPanelの「SSL/TLSステータス」ページで見ることができます。(SSL化されていない場合は少し時間を置いてから再度確認してみてください)

 URLを正規化する

ただこのままだと「https://laravel-site.com」だけでなく

「http://laravel-site.com」

「http://www.laravel-site.com」

「https://www.laravel-site.com」

「http://laravel-site.com.example.mixh.jp」

「http://www.laravel-site.com.example.mixh.jp」

「https://laravel-site.com.example.mixh.jp」

「https://www.laravel-site.com.example.mixh.jp」

のように「非SSL」「www」「サブドメイン」でもアクセスできてしまいます。

セキュリティやSEO的なリスクをなるべく避けたいので、今回は「非SSL」「www」「サブドメイン」でアクセスしたURLは全て「https://laravel-site.com」に統一するためリダイレクト設定をします。

URLを正規化する1
リダイレクト設定は画像のようにcPanelの「リダイレクト」のページにアクセスして設定することもできます。

ですが、「非SSL」「www」「サブドメイン」など一つ一つ対処していくのは面倒なので今回は.htaccessファイルを編集して一括で設定したいと思います。

URLを正規化する2
cPanelの「ファイルマネージャー」にアクセスします。

「/home/ユーザー名/public_html」直下に先ほど登録したドメイン名「laravel-site.com」のフォルダがあると思うのでクリック。

すると「.htaccess」ファイルがあると思うので、それを選択後にツールバーの「編集」をクリックして中身を表示。

※ ドキュメントルートとなっているディレクトリの.htaccessファイルを編集してください。

※ WordPressの場合はドメイン直下にインストールする事が多いと思うので、そのディレクトリがドキュメントルートになります。

※ Laravelの場合は「public」フォルダがドキュメントルートになります。

URLを正規化する3
以下のコードを取得したドメインに合わせて編集後、.htaccessファイルにコピペして「変更を保存」をクリックしてください。

ここで設定した内容は先述の「リダイレクト」ページでも反映されます。

※ .htaccessファイルに他の設定が記述されている場合は、一番上にコピペしてください。

※ 「xxxxxx.com」「.example.mixh.jp」の部分はご自身が取得したドメインとMixhostのサブドメインに合わせて改変してください。

# HTTPSへのリダイレクト設定
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# その他のURL正規化の設定
Options +FollowSymLinks
RewriteEngine on

# wwwありのURLをwwwなしにリダイレクト
RewriteCond %{HTTP_HOST} ^www\.xxxxxx\.com$ [NC]
RewriteRule ^(.*)$ https://xxxxxx.com/$1 [R=301,L]

# レンタルサーバーのサブドメインからのリダイレクト
RewriteCond %{HTTP_HOST} ^xxxxxx\.com\.example\.mixh\.jp$ [NC]
RewriteRule (.*) https://dmain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.xxxxxx\.com\.example\.mixh\.jp$ [NC]
RewriteRule (.*) https://xxxxxx.com/$1 [R=301,L]

ブラウザのURL入力欄でドメインに「www」やサブドメイン「.example.mixh.jp」を付けてアクセスし、全て「https://xxxxxx.com」のようにSSL化されたURLにリダイレクトされれば成功です。