2010-01-31
symfonyのリダイレクトでハマる
PHP |
いまだにハマッたまま抜け出せないので、もう諦めて別の方法で回避していますが、symfony で
$this->redirect('fuga/hoge?sid=xxxx');
とすると /fuga/hoge/sid/xxxx に勝手に変換されてリダイレクトされます。
てめー!なんで指定したとおりにリダイレクトしねーんだよ!!!!!
と何度キレたことか・・。
この勝手な書き換えのせいで、携帯用のセッションIDが正しく渡せません。
guid=ONも/guid/ONに書き換えやがるので、ドコモの端末固有IDがとれません。
$this->redirect('http://test.com/fuga/hoge?guid=ON&sid=xxxx');
みたいに書けば一応動きます。Zend Framework では
$this->_redirect('/fuga/hoge?guid=ON&sid=xxxx');
と書けばそのとおりにリダイレクトしてくれます(アンダーバー付きの関数ってのがキモイが)。
勝手に余計なおせっかいをするのは本当に勘弁してほしいです・・。

http://d.hatena.ne.jp/kopug/20100118/1263824986
factories.ymlのroutingでextra_parameters_as_query_stringを設定すればできます。
ただし1.2以上です。
すでに試されたかもしれませんが、こちらのブログの方が同じような症状の対処方法を書かれています。
http://d.hatena.ne.jp/kopug/20100118/1263824986
ご参考までに。
今はバージョン1.0を使っているのです・・。
>id:innx_hidenori さん
コメントありがとうございます。参考にしてみます。
1.0だと以下の記事が参考になります。
http://d.hatena.ne.jp/TakiTake/20081112/p1
リダイレクト前に
sfConfig::set('sf_url_format', 'GET');
をセットしておけば変換されないと思います。
また、ZF 勉強会の話がではじめているのですが、bayside はどうですか。
興味がアレば、ちょこっと#zf-talk.ja に顔を出して頂けると幸いです。
連絡先がわからなかったので、ここで。ごめんなさい><
お久しぶりです。勉強会、超興味あります!
会場はお貸しできるので、ぜひやりましょう。