本番環境と開発環境で異なるポート番号を保持したいのですが、zend ルートに基づく URL ヘルパーの呼び出しでポート番号が忘れられてしまいます。
私のルートは、主にマルチドメイン構成での多言語用に、デフォルトのホスト名ルートでチェーン化された一連の正規表現ルートです (以下に簡単な概要を示します)。
<?php
$routecateg = new Zend_Controller_Router_Route_Regex('cat/(\w+)_([^_]+)(?:_page_(\d+))?(?:_par_(\d+))?(?:.html)?',
array(1 =>'',2=>'',3=>'1',4=>'20','controller' =>'list','action'=>'categ'),
array(1 =>'categid',2=>'categname',3=>'page',4=>'par'),
'cat/%s_%s_page_%d_par_%d.html'
);
$routeindex= new Zend_Controller_Router_Route_Regex('(index|home)?',
array('controller' =>'index','action'=>'home'),
array(),
'index'
);
$hostRouteRepository = new Zend_Controller_Router_Route_Hostname(
':lang.'.$config->serverurl
);
$router ->addRoute('index',$hostRouteRepository->chain($routeindex));
$router ->addRoute('categ',$hostRouteRepository->chain($routecateg));
?>
$config->serverurl は、環境に応じて単なるドメイン名であり、application.ini ファイルで構成されています。
私の運用サーバーでは、デフォルトのポート 80 で実行しているので問題ありませんが、developmenet では別のポートで実行する必要があり、URL ヘルパーを呼び出すたびにポート番号が忘れられます。
Apache サーバーをより適切に構成することで回避できることはわかっていますが、この問題の解決策が見つからないことに驚いています。