記事の詳細

NTTPCコミュニケーションズさんが提供しているのレンタルサーバーサービスの「WebARENA」を利用しているお客様からマルチドメインでWordPressをインストールして運用したいというご依頼がありました。

お安い御用ですよ~!ということで引き受けたのですが、ちょっとばかり苦戦したので備忘録&誰かのお役に立つかもしれないということで記録に残しておきたいと思います。

WebARENAでマルチドメインを使用する時のディレクトリ構成

WebARENAの環境におけるWWWのルートディレクトリはhomeです。マルチドメイン環境にする場合は「マルチドメイン設定ツール」を使って.htaccessを生成することで、homeにアクセスしてきたセッションを.htaccessで指定したディレクトリにリダイレクトすることでマルチドメインを実現しています。

例えば、マルチドメインとして2つのドメイン(parent.comとchild.com)を設定する場合、それぞれのドメインにおいて、一方のparent.comを親ドメイン、child.comを子ドメインと定義することになります。

親ドメイン:parent.com
子ドメイン:child.com

このようにドメインを設定している場合、homeディレクトリ以下は次のように構成しておく必要があります。

このようなディレクトリ構成としておくことで、それぞれのドメインにアクセスした時の参照先は以下のようになります。

parent.com → home以下を参照
child.com → home/child.com以下を参照

親ドメインと子ドメインにWordPressをインストールしてみたら子ドメインのWPで404エラーが!

このように一見簡単に思えたWebARENA環境でのマルチドメイン運用ですが、親ドメインと子ドメインのどちらにもWordPressをインストールして動作確認をしていたところ、子ドメインで404エラーが発生することが分かりました。(以下はインクループのWEBサイトの404の例)

WordPress 404

どうやらパーマリンク設定でデフォルト(http://child.com/?p=1234みたいなやつ)にしていれば問題ないのですが、ディレクトリ階層が存在するようなパーマリンク(http://child.com/blog/2016/11/1234)を設定すると、「404 Not Found」になってしまうという現象発生しているようです。

ちなみに現状のディレクトリ構成はこんな感じです。

プレーンのHTMLファイルで構成されたWEBサイトなら問題ないので、WordPressの.htaccessでmod_rewiteを使っているので、そのあたりなんだろうなぁ・・と予想。

マルチドメイン設定ツールで生成した.htaccessについて

というわけで、.htaccessを修正すれば直るはず!ということでまずはWebARENAのマルチドメイン設定ツールで作った.htaccessから見ていきます。

まず最初の404 Error for Multidomain Directoriesとコメントが入っているほうですが、これは簡単に言うと、home以下にchild.comというフォルダがあるので、parent.com/child.comというURLでアクセスできてしまうのを禁止するために、もしこのURLでアクセスしてきた時には404とするための記述です。

次にMain RewriteRule for multidomainのコメントのほうですが、HTTP_HOSTがchild.comの時には、入力されたURLでアクセスしていいよ~という感じです。

一見、これで大丈夫じゃ?って思ってしまいますが、親ドメインにも子ドメインにもWordPressをインストールしている場合、先にも述べたようにディレクトリ階層があるようなパーマリンクに設定すると404になってしまい固定ページや投稿を見ることができません。

2つのWordPressをインストールしている場合の.htaccessの記述

いろいろ試して辿り着いた結果、以下のように.htaccessを書けば、WebARENAのマルチドメイン環境で親ドメイン、子ドメインの両方にWordPressをインストールしている場合でも正常にパーマリンクが作動します!

なんと、マルチドメイン設定ツールで生成した.htaccessの一番最後にindex.phpを追加しただけ!で解決できました。

[14行目] RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/index.php [L]

このindex.phpを追加した.htaccessはhome直下に置きます。

WebARENAでマルチドメイン&WordPressで運用する場合は注意

今回は親ドメインも子ドメインのどちらにもWordPressをインストールしたので苦戦してしまいました。

結果的にはできているのですが、マルチドメイン運用でどのドメインでもWordPressで運用するというのが一般的に行われている現状において、WebARENAのこの設定のしづらさはちょっと厳しいものがあると思います。正直、初心者にはお薦めできません。

マルチドメインでWordPressを運用するなら、さくらインターネットであればドメインのパスを設定するだけですし、エックスサーバであればドメインの追加設定をするだけで簡単にできてしまいます。.haccessの編集する必要はありません。

個人的にはエックスサーバの管理画面が分かりやすいので好きです。

WebARENAでマルチドメイン&WordPressで運用する場合はご注意を!

 

この記事であなたの課題を解決することができましたか?

疑問点があったり、解決できなかったことがありましたら、お気軽にご相談してください。


ほかの投稿も読んでみませんか?

  1. アバター
    • みつお
    • 2017年 4月 21日

    当方もwebarenaを使っており、
    全く同じ問題で困っておりました。
    こちらのページをみて問題が解決したのですが、
    私の環境ではもう一つ別の問題が出てしまいました。
    解決策をご教授いただけないでしょうか?

    当方の環境は以下のような感じです。

    — 環境 ここから —

    home(.htaccess設置)
    ├wp(.htaccess設置)⇒親ドメインのWordPress
    │├wp-admin
    │├wp-content
    │└wp-includes
    ├sub1.com(.htaccess設置)⇒サブドメインのWordPress
    │└wp
    │ ├wp-admin
    │ ├wp-content
    │ └wp-includes
    └sub2.com(.htaccess設置)⇒静的HTMLページ
     ├index.html
     └aaa
      └index.html

    — 環境 ここまで —

    記事にあります通り、
    RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/index.php [L]
    これを記述することで、子ドメイン(sub1.com)のwordpressの問題は解決しました。

    しかしながら、
    http://sub2.com
    が表示されなくなってしまいました。。。

    ここにはindex.phpは置いておらず、
    代わりにindex.htmlがあります。

    また、
    http://sub2.com/index.html
    と打ち込めば表示されます。

    なんとか解決方法をご教授願えませんでしょうか?
    どうぞ、よろしくお願い申し上げます。

  2. インクループ株式会社
    • インクループ株式会社
    • 2017年 4月 21日

    コメントありがとうございます。

    現状で分かる情報から判断すると、おそらくですが、
    「sub2.com」ディレクトリ以下の.htaccessに

    RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/index.html [L]

    を追記することで表示されるようになるのではないかと思います。
    試していただだけますでしょうか?

    どうぞ宜しくお願い致します。

  3. アバター
    • みつお
    • 2017年 4月 23日

    早速のお返事ありがとうございました。
    HTMLページは無事表示されました。助かりました。

    当方、別の子ドメインにMovable Typeも入れております。
    Movable Typeはサイト構築のときにHTMLを吐き出しますので、
    その子ドメインも同じやり方で表示できると思っておりましたが、
    何故か500エラーが出てしまいます。。。
    こちらの設定のために四苦八苦しましたが、解決に至らず。
    ご返信が遅れてしまい申し訳ございません。
    もうMovable Typeは辞めようかと思っております。

    なんにせよ、大変たすかりました。ありがとうございます!

  4. インクループ株式会社
    • インクループ株式会社
    • 2017年 4月 23日

    解決したみたいで良かったです!

    MovableTypeは弊社でも以前は1社だけお使いだったのですが、
    現在では皆さんWordPressになってしまいました。

    お役に立てて光栄です。
    引き続き、インクループを宜しくお願い致します。

  1. この記事へのトラックバックはありません。

相模原のお店やサービスをどんどん紹介!

行ってみよう相模原 相模原市のお店限定

飲食店

ページ上部へ戻る