質問: ### 前提・実現したいこと htaccessについてです。 ``` ルートディレクトリ + フォルダA + index.html + ... + フォルダB + index.html + ... + フォルダC + index.html + ... ``` というフォルダ構成で http://a.com/でアクセスされた時はフォルダAを公開フォルダに http://b.com/の時はフォルダBを、 http://c.com/の時はフォルダCを... というようにしたいです。 (ルートディレクトリ直下にはアクセス不可) ### 試したこと ドキュメントルートの変更(a.comでフォルダAを...)といった1フォルダのみでの公開は出てくるんですが、正規表現でどう書けばいいかわからず手詰まりになってしまいました。 ### 補足情報 必要な情報かわかりませんが、ロリポップのレンタルサーバーです。
回答: ロリポップで、複数ドメインを利用する場合、「マルチドメイン設定」は必要です。(設定しないと表示されません。) .htaccess で、ドメイン毎に振り分けたいということであれば、マルチドメインの画面で、複数のドメインに同じディレクトリ(質問のルートディレクトリ)を設定して登録した後に、.htaccess での振り分けの設定をすることになります。 ロリポップの場合、マルチドメイン設定について の手順で、フォルダ毎にドメインを割当できるので、標準の機能を使うほうが .htaccess で振り分ける設定が不要なので簡単です。(設定ミスによるエラー等に悩まなくてすみます。) 上記を理解した上で行うのであれば、.htaccess で、ドメイン枚に表示を切り替えることは、RewriteCond で `%{HTTP_HOST}` をチェックして、一致した場合に RewriteRule で書き換えることで対応は可能と思います。 (現在、ロリポップで稼働中のサーバーが無いため、動作確認していません。) 前提: マルチドメイン設定で、対象のドメインとディレクトリの関連付けが完了していること。(振り分け対象となる複数のドメインが質問に書かれている共通のルートディレクトリを参照するように設定していること。) 設定例:( ルートディレクトリ/.htaccess ファイルにて設定 ) ``` RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.example\.com RewriteRule ^(.*) folder-a/$1 [L] RewriteCond %{HTTP_HOST} ^www\.example\.jp RewriteRule ^(.*) folder-b/$1 [L] RewriteCond %{HTTP_HOST} ^www\.example\.net RewriteRule ^(.*) folder-c/$1 [L] ``` なお、CMS (WordPress 等)をお使いの場合は、CMS独自の記載内容を追加する必要がある場合があります。