mixhostで、複数ドメイン運用かつ、メインドメインのドキュメントルートを変更する

そもそもの問題
mixhostでは、メインドメインのドキュメントルートは、「/public_html」で固定です。
そして、別ドメインを作った場合のドキュメントルートは、「/public_html」にディレクトリを作る形になります。
複数ドメインで運用しようとした時、これだと非常にわかりづらい。
public_html
┣ app
┣ config
┣ database
┣ public
┣ new.domain.site
┃ ┣ app
┃ ┣ config
┃ ┣ database
┃ ┣ public
┃ :
┃ :
┣ .env
:
:
更に、メインドメインも別ドメインもLaravel使いました、なんて場合だと、.htaccessが更にややこしいことになりました。
やりたいこと
public_html
┣ main.domain.site
┃ ┣ app
┃ ┣ config
┃ ┣ database
┃ ┣ public
┃ :
┃ :
┣ new.domain.site
┣ app
┣ config
┣ database
┣ public
:
:
実現方法
「/public_html/.htaccess」を作成し、以下のようにします。
※メインドメインをmain.domain.siteとしていますので、適宜読み替えてください。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} main.domain.site
RewriteCond %{REQUEST_URI} !(^/main.domain.site)
RewriteRule ^(.*)$ main.domain.site/$1 [L]
</IfModule>
- ドメインがmain.domain.siteであり
- main.domain.siteディレクトリ以下でないなら
→main.domain.siteディレクトリ下に飛ばす
という動きになります。
「RewriteCond %{HTTP_HOST} (main.domain.site)」を書く理由
この行がない場合、別ドメイン「new.domain.site」でのアクセス時にも、このルールが適用されてしまいます。
public_html
┣ new.domain.site
┃ ┣ main.domain.site
┃ ┃ ┣ index.html
:
:
みたいになる。
それは困るので、あくまでメインドメインでのみ行うようにするため、記述します。
これに気付くのに時間がかかった。
