■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。
このフォーラムは閲覧専用のアーカイブです。

スマートURLを【ON】にすると同階層のフォルダが認識されない。 読み込ませる方法

Masamichi > スマートURLを【ON】にすると同階層のフォルダが認識されない。 読み込ませる方法 @ 2014/2/14 1:43
いつもお世話になっております。

タイトルの状況をご説明させていただきます。

◆現在、下記のように、複数のドメイン直下にBacerCMSを置いております。

1 http://◯◯◯.com

2 http://◯◯◯.jp

3 http://日本語ドメイン.net


■1・2・3共に、【スマートURL】を使用したいのですが、
スマートURLを使用【ON】すると、タイトルの症状が出るため使っていません。


1・2・3のフォルダ構成は基本的に下記の様になります。


 http://◯◯◯.com/           ← BCMSサイトが表示される状態(スマートURLをONにしたい)
                  /contact2/  ← フォルダ(HTMLで書いた別のフォーム 【index.html】が入ってます )
                  /test/      ← 確認用のBCMSサイト
                  /images/
或いは・・・        /保存用.zip/     ←
                  /その他.pdf/     ← これらをお客様に送りたい。 


このような感じになっている(したい)のですが、
スマートURLをONにすると、どのフォルダも認識してくれません。。。

例)
■ スマートURL ONの時

http://◯◯◯.com/contact2/ → NG

http://◯◯◯.com/contact2/index.html → NG

http://◯◯◯.com/test/ → NG(testの中身はBCMS)


404 NOT FOUND
エラー : リクエストされたアドレス '/contact2' はこのサーバにありませんでした。


■ スマートURL OFFの時

http://◯◯◯.com/contact2/ → OK

http://◯◯◯.com/contact2/index.html → OK

http://◯◯◯.com/test/ → OK


スマートURLをONにした状態で、
うまく他のフォルダを使える方法があるかと思うのですが・・・


ご教授お願い致します。

■ BaserCMS: 3.0.15〜4.1.5
■ サーバー名: mixhost・x-server・さくら・ロリポップ
■ スマートURLの利用: [共に]
■ 設置フォルダ: [共に]
■ データーベース MySQL5.6
■ PHPスキル[C]

tecking > Re: スマートURLを【ON】にすると同階層のフォルダが認識されない。 読み込ませる方法 @ 2014/2/14 2:05
Masamichiさん

baserCMS公式サイトの「ドキュメントルートについて」 http://basercms.net/manuals/3/base/1.htmlにあるように
baserCMSは /app/webroot/ をデフォルトのドキュメントルートとするので
contact など、baserCMS以外のディレクトリやファイルについても /app/webroot/ 以下に再配置してみてはどうでしょう。
Masamichi > Re: スマートURLを【ON】にすると同階層のフォルダが認識されない。 読み込ませる方法 @ 2014/2/14 16:12
teckingさま

ご返信有難うございます。

教えて頂いた通り、/app/webroot/ 以下に、
それぞれのフォルダを設置したところ、うまくいきました!

ありがとうございます。


ただ、BacerCMS が入ったフォルダ(manual)は、
インストールは出来たのですが、TOPページや編集画面共に、
CSS等が反映されていない様子です。



http://◯◯◯.jp/app/webroot/manual/ ← BCMS(3.0.1)が入ったフォルダ


http://◯◯◯.jp/manual/index.php/

http://◯◯◯.jp/manual/index.php/admin

↑これらにアクセスしても画像の状態になります。

簡単インストールと手動とで、
2度試しましたが、同様の状態になりました。


上記のトップURLには、すでにBCMSをインストール済みで、
スマートURLをONにしてあります。


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

■ BaserCMS: 3.0.15〜4.1.5
■ サーバー名: mixhost・x-server・さくら・ロリポップ
■ スマートURLの利用: [共に]
■ 設置フォルダ: [共に]
■ データーベース MySQL5.6
■ PHPスキル[C]

tecking > Re: スマートURLを【ON】にすると同階層のフォルダが認識されない。 読み込ませる方法 @ 2014/2/14 18:35
引用:
http://◯◯◯.jp/app/webroot/manual/ ← BCMS(3.0.1)が入ったフォルダ


私の解釈が違っていたら申し訳ないのですが、baserCMSを重複してインストールされている、ということでしょうか。
現状、サーバ内の構造としては下のようなかたちですか?(主だったディレクトリのみ列記しています)

/app
  /webroot
    /manual
      /app       <-+
        /webroot   |
      /lib         | baserCMSが入れ子でインストールされている
        /Baser     |
        /Cake    <-+  
/lib
  /Baser
  /Cake
Masamichi > Re: スマートURLを【ON】にすると同階層のフォルダが認識されない。 読み込ませる方法 @ 2014/2/14 20:49
teckingさま

ご返信ありがとうございます。

現在の状況を画像でご説明させていただきます。



このような感じになっております。

http://msstyle.jp/
が1つのBCMSサイトになっており、

http://msstyle.jp/manual/
を、サンプル等の別のBCMSサイトにしたいと考えております。

スマートURL OFFの状態では、
別のドメインでですが、上記の事が出来ております・・・

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

■ BaserCMS: 3.0.15〜4.1.5
■ サーバー名: mixhost・x-server・さくら・ロリポップ
■ スマートURLの利用: [共に]
■ 設置フォルダ: [共に]
■ データーベース MySQL5.6
■ PHPスキル[C]

tecking > Re: スマートURLを【ON】にすると同階層のフォルダが認識されない。 読み込ませる方法 @ 2014/2/15 20:28
手元の環境で動作しているようなのでご参考までに設定を書きますね。
(Masamichiさんの環境と異なる箇所もありますが)

●ディレクトリ構成
/  <- サーバのドキュメントルート(http://example.com)
  basercms      <- サブフォルダでインストールしたbaserCMS 3.0.1
    /app
      /webroot
        /manual  <-+
          /app     | 入れ子でインストールしたbaserCMS 3.0.1
          /lib   <-+
    /lib


この状態で以下を追記・編集しました。

/basercms/.htaccess

RewriteEngine on
RewriteBase /basercms
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]


/basercms/app/webroot/.htaccess

Allow from all
RewriteEngine on
RewriteBase /basercms/app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]


/basercms/app/Config/install.php

Configure::write('App.baseUrl', '');


/basercms/app/webroot/manual/.htaccess

RewriteEngine on
RewriteBase /basercms/app/webroot/manual
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]


/basercms/app/webroot/manual/app/webroot/.htaccess

Allow from all
RewriteEngine on
RewriteBase /basercms/app/webroot/manual/app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]


/basercms/app/webroot/manual/app/Config/install.php

Configure::write('App.baseUrl', '');


この設定で、入れ子になっているbaserCMSに対し
http://example.com/basercms/manual で http://example.com/basercms/app/webroot/manual にリダイレクトしました。
(http://example.com/basercms/manual/ ではHTTPステータスコード404〔Not Found〕を返します)
ちなみに管理画面には http://example.com/basercms/app/webroot/manual/admin で入れます。

すっきりした解決策ではないですが、暫定版としてご参考にどうぞ。
Masamichiさんの環境では、
ドキュメントルートにサブフォルダを作らずインストールされているので
キモになる .htaccess の設定を適宜読み替えていろいろ試していただければとおもいます。
Masamichi > Re: スマートURLを【ON】にすると同階層のフォルダが認識されない。 読み込ませる方法 @ 2014/2/16 14:53
teckingさま

真摯にご対応くださいまして、
誠にありがとうございます。m(_ _)m

回答してくださった方法で、
表示されるようになりました!

http://msstyle.jp/manual
↑こちらを打ち込むと、

ご説明通り、このようなURLになります。
http://msstyle.jp/app/webroot/manual/


理想は、app/webrootを除いた
http://msstyle.jp/manual/○○○

このように表示できるように、
設定を見直していきます。

もう少し時間が掛かりそうですが、
お礼を伝えたくて投稿させていただきましたm(_ _)m

誠にありがとうございます。


解決いたしましたら、
こちらに追記として記載させていただきます。

■ BaserCMS: 3.0.15〜4.1.5
■ サーバー名: mixhost・x-server・さくら・ロリポップ
■ スマートURLの利用: [共に]
■ 設置フォルダ: [共に]
■ データーベース MySQL5.6
■ PHPスキル[C]

Masamichi > Re: スマートURLを【ON】にすると同階層のフォルダが認識されない。 読み込ませる方法 @ 2014/2/21 23:47
お世話になっております。

スレ内の目的を無事に解決することが出来ましたので、
ご報告させていただきます。

ドメイン直下にBaserCMSをインストールした状態で・・・

http://◯◯◯.jp/  ← BaserCMSのサイトが表示される状態(スマートURL ON)

manualというフォルダを http://◯◯◯.jp/app/webroot/manual ← manual(フォルダ)を作成して、
こちらにもBaserCMSをインストールし、スマートURLをONにしたいという内容です。

この様に出来ると、メインのドメイン以下で、
幾つもの個別のBaserCMSサイトを運営できます。


http://◯◯◯.jp/          メインBCMSサイト
               /work1     子サイト1(BCMSサイト)
               /work2     子サイト2(同上)
               /work3     子サイト3(同上)


*全てのサイトでスマートURL(ON)で表示可能


【うまく出来た方法】

【Step1】
http://◯◯◯.jp/app/webroot/ここに任意のフォルダ作成(今回はmanualを作成)

manual(なんでもOK)内にインストールしたBaserCMSを
スマートURLをONの状態に設定いたします。

【Step2】
manual内の.htaccess の最後にこちらを追記

RewriteEngine on
RewriteBase /app/webroot/manual
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]



【Step3】
manual/app/webroot 内の.htaccessの状態



#RewriteEngine on
#RewriteBase /basercms/app/webroot/manual
#RewriteRule ^$ app/webroot/ [L]
#RewriteRule (.*) app/webroot/$1 [L]

Allow from all
RewriteEngine on
RewriteBase /app/webroot/manual/app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]



【Step3】キモになる部分

app/config内のinstall.phpに下記を追記


Configure::write('App.baseUrl','http://msstyle.jp/manual');
Configure::write('App.base', '/manual');


上記の様に作成したmanual(赤文字)を
任意の物に変えて頂ければOKです。

2系(2.1.2)と3系(3.0.1)の両方で
意図通りに表示出来ました。

実際のサイトはこちら(メインBCMS 2.1.2 ・子サイト2.1.2)
・http://msstyle.jp/
(メインとなるサイト)

・http://msstyle.jp/basercms/
(子サイト1)

・http://msstyle.jp/manual/
(子サイト2)


リンクさせる時は、作成したフォルダ(URL)の最後に( / ) スラッシュが必要。

無い場合は、http://msstyle.jp/app/webroot/manual が表示されるが、
manualサイト自体の表示はOK。



ご回答を下さったteckingさま、
誠にありがとうございました!

色々テストしてみましたが、
上記の様な追記でカタチになりました^^;


↓こちらの方法ならもっと簡単に実現出来そうですが、
一先ずアップさせていただきます。

ベイサーCMS マガジン 第2回 ドキュメントルートの変更
http://magazine.barket.jp/article/archives/7


今後ともどうぞ宜しくお願い致します。

■ BaserCMS: 3.0.15〜4.1.5
■ サーバー名: mixhost・x-server・さくら・ロリポップ
■ スマートURLの利用: [共に]
■ 設置フォルダ: [共に]
■ データーベース MySQL5.6
■ PHPスキル[C]