バグ報告 > 管理機能 > 管理側でログイン認証後管理側TOPに遷移しない |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 2007/12/12 1:29
対応状況: −−−
|
管理側でログイン認証後管理側TOPに遷移しない apache(他のWEBサーバでも同じ動作だと思います。)にてaliasの設定をすると、
設定次第では(ほとんどの場合でしょうが)リダイレクトが上手く行かなくなるようです。 例えば アプリケーションの配置が /home/user/eccube2/ /home/user/eccube2/html/ /home/user/eccube2/data/ 上記のような場合。 (長くなるのでAlias部分のみ記述します) Alias /hogehoge/ "/home/user/eccube2/html/" (http://hostname/hogehoge/)でアクセスするように 上記のようにAlias設定をすると、 管理側ログイン認証後管理側トップページにリダイレクトしません。 (認証自体は成功してるので直に/admin/home.phpにアクセスすると遷移する。) 尚、/install/index.phpにて設定をする際、 下記の項目は最初から表示されている情報で登録しております。 ■WEBサーバの設定 HTMLパス※ /home/user/eccube2/html/ URL(通常)※ http://hostname/hogehoge/ URL(セキュア)※ http://hostname/hogehoge/ |
|
ゲスト |
投稿日時: 2007/12/12 1:44
対応状況: −−−
|
Re: 管理側でログイン認証後管理側TOPに遷移しない 続きです。
本件はLC_Page.phpのLC_Pageクラス内getLocation関数の最初のif関数(214行目辺り)辺りの処理が問題のようです。 具体的には下記の処理です。 substr_replace(HTML_PATH, "", strlen(HTML_PATH) - strlen(URL_DIR), strlen(URL_DIR)); 先のコメントの条件で考えると HTML_PATH が /home/user/eccube2/html/ URL_DIR が /hogehoge/ になりますが、 strlen(HTML_PATH) - strlen(URL_DIR) の値が24-10で 14 strlen(URL_DIR) の値が 10 関数の結果が/home/user/ecc になります。 (ここで期待される結果は/home/user/eccube2のはず) その後この値がrealpathに投げられているので結果はfalseとなり、その後のリダイレクト処理が延々失敗しているようです。 ソースを修正しない場合の対応策として /home/user/eccube2/html/ を /home/user/eccube2/hogehoge/ に変更し、エイリアスを Alias /hogehoge/ "/home/user/eccube2/hogehoge/" とすることで正常にログインできるようです。 (他の動作に関しては検証してません。) |
|
ゲスト |
投稿日時: 2007/12/12 2:26
対応状況: −−−
|
Re: 管理側でログイン認証後管理側TOPに遷移しない 続きです。
書き忘れましたがバージョンは2.0.1になります。 |
|
saratoga |
投稿日時: 2007/12/12 9:38
対応状況: −−−
|
一人前 登録日: 2006/9/22 居住地: 大阪 投稿: 76 |
Re: 管理側でログイン認証後管理側TOPに遷移しない To ゲスト様
以前に同じ問題で困ってましたが、取り急ぎ、 Alias は使わないように VirtualHost の設定で凌いでます。 (ただ、レンタルサーバによってはどうしようもない場合もありそうですが) http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=1356&forum=4&post_id=4405#forumpost4405 Apache の設定で工夫するよりは、プログラム側で対処したいところですが、 LC_Page.php は影響範囲が大きい部分なので私は様子見です。 ゲスト様考案のソース修正対応で他に影響がなければ プログラム側でうまいこと回避できそうですね。 |
ゲスト |
投稿日時: 2007/12/12 12:16
対応状況: −−−
|
Re: 管理側でログイン認証後管理側TOPに遷移しない 恐らく同じ処理が後に走るのでURL先の問題の原因と同じようですね。
>ゲスト様考案のソース修正対応で他に影響がなければ ソース修正ではなくhtmlディレクトリの名称をAlias名に変えるだけかな? 確かに開発サーバではVirtualHostで何とかなるのですが、 納品時にサーバを弄れない環境では今の仕様は厳しかったりします。 まだEC-CUBEのソースコードを1日しか読んでおりませんので、 全容把握しておらず >他に影響 これが一番怖いです。 わざわざhtmlパスとしてディレクトリ名指定できるので大丈夫なのかも?(全てに反映される設計のようですし) |
|
ゲスト |
投稿日時: 2007/12/12 12:26
対応状況: −−−
|
Re: 管理側でログイン認証後管理側TOPに遷移しない http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=1448&forum=2
他にもありました。 一応検索したつもりだったのですが既出だったようで申し訳ないです。 |
|
nanasess |
投稿日時: 2007/12/13 0:24
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2315 |
Re: 管理側でログイン認証後管理側TOPに遷移しない 大河内です.
すべて確認できていませんが, HTML_PATH は, 他の部分の影響が多く考えられるため, 修正するのでしたら, getLocation() 関数で HTML_PATH としている箇所のみを修正するのが安全かもしれません. この関数は, http(s):// からの絶対URLを取得する目的でのみ使用されています. getLocation() 関数が使用している $netURL->getURL() で URL が取得できないという現象も発生しているようですし, 根本解決が難しそうですね. . . http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=1356&forum=4&post_id=4406#forumpost4406 Alias を使用する場合は, パラメータ設定で ALIAS_PATH のような値を定義して getLocation() で使用してやれば根本解決になるかもしれません. |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |