セッションIDが付いた状態でトップページへアクセスすると、正常にアクセスできないことが判明。
http://example.com/?CAKEPHP=XXXXXXXX
こんな感じのURL。
どうやら、dispatcher.phpのuri()というメソッド内で、URLを正規表現処理してるところが正しくない模様。
> $uri = preg_replace('/^(?:\/)?(?:index\.php)?(?:\/)?(?:\?)?(?:url=)?/', '', $uri);
この行で (?:\?)? が ? を削除してしまっているせいで、本来
http://example.com/?CAKEPHP=XXXXXXXX
とアクセスするところが
http://example.com/CAKEPHP=XXXXXXXX
になってしまっている。
正規表現困った・・・。
という事で、とりあえず URL が /? で始まっていれば〜的な分岐処理で一時的に対応しておくことにする。
if( preg_match( "/^\/(\?.*)/", $uri, $matches ) )
{
$uri = $matches[1] ;
}
else
{
$uri = preg_replace('/^(?:\/)?(?:index\.php)?(?:\/)?(?:\?)?(?:url=)?/', '', $uri);
}
http://example.com/?CAKEPHP=XXXXXXXX
こんな感じのURL。
どうやら、dispatcher.phpのuri()というメソッド内で、URLを正規表現処理してるところが正しくない模様。
> $uri = preg_replace('/^(?:\/)?(?:index\.php)?(?:\/)?(?:\?)?(?:url=)?/', '', $uri);
この行で (?:\?)? が ? を削除してしまっているせいで、本来
http://example.com/?CAKEPHP=XXXXXXXX
とアクセスするところが
http://example.com/CAKEPHP=XXXXXXXX
になってしまっている。
正規表現困った・・・。
という事で、とりあえず URL が /? で始まっていれば〜的な分岐処理で一時的に対応しておくことにする。
if( preg_match( "/^\/(\?.*)/", $uri, $matches ) )
{
$uri = $matches[1] ;
}
else
{
$uri = preg_replace('/^(?:\/)?(?:index\.php)?(?:\/)?(?:\?)?(?:url=)?/', '', $uri);
}