btmup Blog

Web 制作のことを中心に、ちょっとした Tips などを掲載しています。「自分用メモ」が基本スタンス。

CMS

SOY CMS でルート設定するとアクセスできなくなってしまうディレクトリを救出する方法

投稿日:

SOY CMS でサイトを制作して、ドメイン直下にページを公開したい場合は「ルート設定」をします。
その意味や方法についてはマニュアルを見ていただくとして、今回のテーマは「ルート設定からの逃れ方」。

サーバーによっては、コントロールパネル(管理画面、以下「コンパネ」)がサイトと同じ階層(FTPで見えるところ)にあったり、全然別のURLなのにあたかも同じサーバーに乗っかってるような設定になっているところがあります。
(すんません。何を書いてるか自分でもよく分からないんですが、同じ状況になった人なら分かってくれると思います。たぶん)

で、そんな場合に SOY CMS のルート設定をすると、コンパネにアクセスできなくなったりすることがあるワケですね。
僕の場合は「404 Not Found」エラーになりまして、SOY CMS で設定した「見つかりません」ページが空しく表示されるばかり。
試しにルート設定を外してみると、コンパネにアクセスできるようになります。
再度設定すると、やっぱりまたアクセスできない。

うーん……、ルート設定に原因があることは間違いないみたい……。
これは困った。

……んですが、いろいろ試していると運良くうまくいく方法があったので、備忘も兼ねてご紹介しておきます。

自動生成された「.htaccess」を編集して、除外してやる

僕が関わっていた件の場合、コンパネのディレクトリ(というかURL)を特定することができました。
ということは、「ルート設定」の対象からこのディレクトリだけを除外してやれば良いはず。
ということは、「ルート設定」をしたときに SOY CMS が自動的に生成する「.htaccess」を編集すればいけるんじゃないか。
と踏んだワケです。

ちなみに、SOY CMS が自動生成する「.htaccess」は次の通り。

# @generated by SOY CMS at 2010-04-05 18:24:54
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.htm !-f
RewriteCond %{REQUEST_URI} !/index.php/
RewriteRule ^(.*)$ index.php/$1 [L]
#---SOY CMS end of htaccess file --

じっくり見てみると……。

お、「!/index.php/」てのがありますね。
「!」って、正規表現で言うところの否定ですよね。
ということは、たぶん「/index.php/」じゃなかったら、って意味ですよね。
だったら、ここに除外したいディレクトリを入れたらいけんじゃね?

という感じで、以下のようにしてみました。

# @generated by SOY CMS at 2010-04-05 18:24:54
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.htm !-f
RewriteCond %{REQUEST_URI} !/index.php/
RewriteCond %{REQUEST_URI} !/hoge_conpane/
RewriteRule ^(.*)$ index.php/$1 [L]
#---SOY CMS end of htaccess file --

ビンゴ!

うまくいきました。
コンパネも表示されるようになりましたし、ルート設定も問題ないようです。
(もちろん他にも色々調べたり検証したりしたですって。単なる当てずっぽうじゃないんですって)

もし書き方がおかしかったり、もっと良い方法があれば教えてください。
見ての通り、詳しい方ではないので。

とりあえず今回はディレクトリ(というかURL)を特定できたので、「そこを除外すればOK」という単純な方法で解決できました。
が、それ以外のケースもあるでしょうから、それはまたぶつかったときに考えたいと思います。
(いや、考えないといけないことがないことを祈りますけど)

雑感など

それにしても、ルート設定って、SOY CMS 内で管理してる特定のサイト(ディレクトリ?)にだけ効果があるものだと思ってたんですけど、そうでもないんですね。
サーバーのことを分かってる人からすると「なーにを今さら。ケッ!」って感じなのかも知れないですけど、僕のように「CMS の導入は出来るよ。でもカスタマイズはほとんど出来ないよ」というくらいのレベルの人間にとってみたら、今回のような事象は非常にビックリなのです。
いや、本当に焦った……。

日々勉強、そして経験、ですなぁ。







-CMS
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

SOY CMS で PHP を使えるようにする方法。

「そろそろ SOY CMS をちゃんと使いたいなー」ということで、レンサバを新しく一つ借りてとりあえずインストールしてみました。 誰かに見てもらう訳でもないので、とりあえず公開はしない方向で。 ドメイ …

no image

SOY CMS で記事の日付に曜日を日本語(漢字)で表示する方法。

[2011.08.03 追記 「$information[“create_date”]」の仕様変更、および、「strtotime」関数によるタイムスタンプへの変換についての記述 …

no image

EC サイト構築 ASP の「MakeShop」で注意する点など(走り書き)。

EC サイトを構築するために「MakeShop」という ASP を使用しているのですが、やっぱり普通にホスティングを借りてガシガシ作るのとは勝手が違います。 色々と分からなかったり詰まったり「あー、こ …

no image

CMSについて独り言。

経験則だけど、たぶんものすごく一般論。 いわゆる「Web 担当者」が、文書の作成や編集をするときの基準は MS Office。 そういう人たちの多くは「インターネットは何でもできる」と思っていて、CM …

no image

SOY CMS の記事編集画面で TinyMCE エディタを無効にする方法(プラグイン)。

SOY CMS には、記事(エントリー)を編集するエディタとして「TinyMCE」が導入されています。 このエディタ、HTML が分からない人にとっては非常に便利なシロモノ。 なんせ文字のスタイルから …