操作
Backport(バックポート) #2726
完了config/OpenPNE.yml で80番以外のポート番号を含むURLをbase_urlに指定した場合、通知メール等に含まれるURLにポート番号が反映されない
開始日:
2011-04-19
期日:
進捗率:
100%
予定工数:
説明
Overview (現象)¶
config/OpenPNE.yml で80番以外のポート番号を含むURLをbase_urlに指定した場合、通知メール等に含まれるURLにポート番号が反映されない
Environment (再現バージョン)¶
OpenPNE3.6beta8
Way to repro (再現手順)¶
- config/OpenPNE.yml で80番以外のポート番号を含むURLをbase_urlに指定
- 招待メールを送ってみる
- 招待状本文中の「〜〜SNS に参加する」URLのリンクにポート番号が含まれない
例:
base_url: "http://sns.openpne.jp:8080"→
... ■ ××××SNS に参加する http://sns.openpne.jp/member/register/token/xyxyxyxyxyxyxyxy ...
Causes (原因)¶
parse_url(sfConfig::get('op_base_url')) の戻り値配列に含まれる port が使われていない
Way to fix (修正内容)¶
- parse_url() の戻り値配列に含まれる port を保持。(lib/config/opApplicationConfiguration.class.php)
- sfPatternRoutingを継承したクラス opPatternRouting で修正。symfony側(sfRouting)には手をつけない。
修正パッチ: https://github.com/tozuka/OpenPNE3/commit/1da0e7306a7815a8502f7524a6b26f1436096bd7
備考¶
config/OpenPNE.yml.sample のように
base_url: "http://example.com"が指定されていると、実際のリクエストからURLをポート番号込みで読み取って絶対URLを生成してくれる実装になっているが、op_base_url までは書き換えてくれないのでメールのフッタには http://example.com と表示される。
操作