Re: BaseCMSのなかにBaserCMSを設置した場合の.htaccess
- nagachan > BaseCMSのなかにBaserCMSを設置した場合の.htaccess @ 2015/1/21 18:01
- » n1215 > Re: BaseCMSのなかにBaserCMSを設置した場合の.htaccess @ 2015/1/24 1:13
- nagachan > Re: BaseCMSのなかにBaserCMSを設置した場合の.htaccess @ 2015/1/24 9:10
n1215 > Re: BaseCMSのなかにBaserCMSを設置した場合の.htaccess @ 2015/1/24 1:13 |
---|
nagachan 様
まずはじめに、xxxx\.jpは取得可能なドメインなので、 例示のために予約されているexample.comなどで表記していただいた方が良いかと思います。 (現状Webサイトは設置されていないようですが、今後http:// xxxx.jp/member/ に悪意あるページが設置される可能性もゼロではありません。) さてご質問についてですが、 .htaccessのURLリライトの動作について理解する必要があるかと思います。 説明の単純化のため.htaccessの番号を振ります。
●.htaccessによるリライトの流れ まずはドキュメントルートに設置したbaserCMSの前段のWebサーバ(Apache)による.htaccessの処理の流れについて見てみましょう。 .htaccessが有効な状態で、 http://example.com/path/to/file へのアクセスがあったとすると、 Webサーバ(Apache)は.htaccessを深い階層のものを優先して適用します。 1.{ドキュメントルート}/path/to/.htaccess 存在せず 2.{ドキュメントルート}/path/.htaccess 存在せず 3.{ドキュメントルート}/.htaccess (1)存在するので適用 (1)の.htaccessは
となっているので、パスは{ドキュメントルート}/app/webroot/path/to/file向けに書き換えられます。 さらにWebサーバ(Apache)は下記の優先順位で.htaccessを適用します。 1.{ドキュメントルート}/app/webroot/path/to/.htaccess 存在せず 2.{ドキュメントルート}/app/webroot/path/.htaccess 存在せず 3.{ドキュメントルート}/app/webroot/.htaccess (2)存在するので適用 4.{ドキュメントルート}/app/.htaccess 存在するが(2)によって上書きされている 5.{ドキュメントルート}/.htaccess (1) 存在するが(2)によって上書きされている (2)の.htaccess
となっているので、/app/webroot/path/to/fileというファイルやディレクトリが存在しなければそのままbaserCMSに処理が渡されます。 ●本題 上記のように、2つの.htaccessが協調して動いているということがわかりました。 方針としては、{ドキュメントルート}/member/hogehogeは最初に(1)の.htaccessで処理されるので、その段階で、 下位のbaserCMSの(4)の.htaccessに処理が渡るようにリライトすればいいことになります。 ((3)を経由してもいいですがややこしいかなと) (1)の.htaccess
(4)の.htaccess
さらに下位のbaserCMSのinstall.phpを変更します。 {ドキュメントルート}/app/webroot/member/app/Config/install.php
サーバの設定によっては微妙に違う可能性があるのですが、こんな感じでいかがでしょうか。 最後にいまさらですが、2つ目のbaserCMSを {ドキュメントルート}/app/webroot/memberに設置するよりも {ドキュメントルート}/memberに設置したほうが設定が楽な気もしますね。 Twitter: @n_1215 |