UserDir配下でスマートURLがうまく動作しません。
| kuma > UserDir配下でスマートURLがうまく動作しません。 @ 2010/12/4 8:13 |
|---|
|
動作検証させてもらっております。
UserDir配下に設置してスマートURLを有効にしたところ、下記問題が発生しました。 1.[ホーム]の表示で、記事部分にて404エラー「/は見つかりません」となる 2.携帯でアクセスしたときのリダイレクトが、間違ったURLになる。(後述) ■環境 BaserCMS1.6.7 サーバー:Redhat Linux ES4 下記に設置しております。 設置パス:/home/<ユーザー名>/public_html/basercms/ URL:http://<ドメイン名>/~<ユーザー名>/basercms/ ■詳細情報 リダイレクト先URLですが、下記の様になっていました。 http://<ドメイン名>/home/<ユーザー名>/public_html/basercms/m/ ちょっと内部解析してみたところ、baseUrl()関数内部がうまく動作していないらしく ・Configure::read('App.baseUrl')が取得できていない ・代替処理でdocRoot()からの補正処理で「home/<ユーザー名>/public_html/basercms」となってしまう。 のが原因のようです。 Configure::read('App.baseUrl')はcore.phpで定義されていて、bootstrap.phpでは取得できているのですが、どこかで消えてしまっている感じでした。 以上、ご参考までに |
| ryuring > Re: UserDir配下でスマートURLがうまく動作しません。 @ 2010/12/5 20:53 |
|---|
|
こんにちは。
ご報告ありがとうございます。 調査したところ、basics.phpのdocRoot関数に不具合があるようです。 http://project.e-catchup.jp/issues/1141 何かいい方法がありませんかね・・? Twitter:@ryuring |
| kuma > Re: UserDir配下でスマートURLがうまく動作しません。 @ 2010/12/9 17:07 |
|---|
|
単純に、Dispatcher::baseUrl()の中の
$base = str_replace($replace, '', dirname(env('PHP_SELF'))); でいけませんかね? $_SERVER["PHP_SELF"]だとPATH_INFOも入るので、$_SERVER["SCRIPT_NAME"]の方がよさそうですが |
| kuma > Re: UserDir配下でスマートURLがうまく動作しません。 @ 2010/12/13 16:53 |
|---|
|
baseUrl()とdocRoot()を下記に書き換えて動作できました。
通常設置では未検証です。 <設置パス>/app/webroot/⇒<設置パス>に補正する処理を、2階層上フォルダとして入れてますが、 「/app/webroot/」をうまく取得できれば、置換で済みそうです。 参考になれば幸いです。 |
| ryuring > Re: UserDir配下でスマートURLがうまく動作しません。 @ 2010/12/14 11:36 |
|---|
|
kumaさんコード提供ありがとうございます。
ただ、webrootの位置は、次のページのように移動可能としたいので、 http://basercms.net/manuals/etc/1.html 色々検討したところ次のコードにしようと思います。 いかがでしょうか? Twitter:@ryuring |


