前回の記事において、SharkSpaceでは、アカウント作成時に登録しなければいけないメインドメインを、公開用ディレクトリのpublic_htmlフォルダに強制的に固定となってしまう仕様について書きました。つまりこういう事↓なんですが:

091129_ss1これをこういう風に↓する方法です。

091129_ss3

やり方は簡単です。以下の内容を.htaccessに記述し保存、それをpublic_html直下においてやるだけです。この内、yourmaindomain.comを、そしてsubfolderを、それぞれ環境に合わせて編集します。上図の場合、yourmaindomain.comはwaviaei.com。subfolderはwaviaeiです。

[php]RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ subfolder/index.php [L] [/php]

これで、ブラウザからwaviaei.comや記事のパーマリンク、管理画面へのURLを表示させると、サブフォルダwaviaeiの中にインストールしたWordPressが表示されます。

管理画面で問題発生

しかし、やはり一筋縄ではいかず。管理画面で問題発生しました。

最近のプラグインは管理画面にそれぞれのプラグイン設定パネルを追加するのが多いですが、その中には設定パネル内の複数タブ移動時や、設定保存時に画面をリロードするのが多々あります。と言うかほとんど全部ですね。その再リロードするURLの冒頭をブログのURLではなくディレクトリで指定するプラグインを発見。ディレクトリ指定だとwaviaei.com/waviaei/となってしまい、うまくいきません。表示されるのはなぜかログイン画面で、ログインしても変更した設定は反映されていません。

観覧してもらうページ、つまりブログ内の各パーマリンクですが、はリダイレクトしても問題なさそうですが、管理画面内においては大丈夫なのかな?というのが実は心配していたのですが、それが当たってしまった形です。正直、PHPやmod_rewriteのスキルが低いのであまり管理画面周りでは余計な事をしたくないのが僕的心情です。

SharkSpaceだけ?もしかして他の海外サーバも?

実は先ほど上げたコードですが、元ネタは以下の2つです。コードは微妙に違っていますが、やっている事は同じです。

  • Change the main domain folder – HostGator Peer Support Forums
  • Pointing Main Domain to Different Directory [Archive] – bluehostforum.com

さて、各リンクのサイト名を見てもらっても分かるように、実はこれ、Sharkspaceの情報ではなく、それぞれHost Gator、BlueHost、共に今回検討した海外サーバ、の情報です。しかし、その仕様の内容は全く同じです。つまり、メインドメインがpublic_htmlに強制的に固定される仕様です。

うーむ。もしかして海外、いや、アメリカのレンタルサーバは全てこういう仕様なのか?

そこで、DreamHostを使ってるTaiさんに聞いてみました。ところが、DreamHostではそうではない、と。さくらインターネットの時と同じように、ドメインを自由に任意のディレクトリに指定できると。

うーむ。で、気がつきました。SharkSpaceとHost GatorとBlueHostに共通していて、DreamHostには無いもの。それはサーバ管理画面のcPanelです。もしかしてこれってサーバ会社がそのような仕様にしたのではなく、採用している管理画面ソフトのcPanelの仕様なのかっ?

cPanelを採用していないサーバを探してみたところ、FatCowも独自の管理画面でした。このサーバ会社はチュートリアル・ビデオが充実していて、その中の1つの、ドメインのリダイレクト方法のビデオがあります。そこから分かりました。

余談ですが、FatCowのチュートリアル・ビデオの出来が素晴らしいです。凄く丁寧で非常に分かりやすい。他のサーバ会社も見習って欲しい。