このURL構造は、SEO最適化のために提案されています。したがって、別の構造を提案することはできません。提案された構造は、私が各1のビューとして、CountryController
indexAction
を指すたいZend Frameworkの国、都道府県、市、製品のルーティング
example.com/<language>/<country>/<province>/<city>/<product>
example.com/en/spain
異なっている、そして時にはまた、レイアウトの変更があると思います。
国スペインについてのコンテンツを英語で表示します。また、example.com/en/india
にはインドについて英語で、example.com/es/spain
にはスペインのスペイン語ページが表示されるはずです。英語でスペインのバルセロナ州のためのCountryController
provinceAction
コンテンツページへ
example.com/en/spain/barcelona
ポイント。英語での国スペインのバルセロナ州のバルセロナ市内のためCountryController
cityAction
コンテンツページへ
example.com/en/spain/barcelona/barcelona
ポイント。バルセロナ市内、英語での国スペインのバルセロナ省の製品の
example.com/en/spain/barcelona/barcelona/taxis
ポイントCountryController
からproductAction
コンテンツページ。
はい、私たちは
$router = $ctrl->getRouter();
$router->addRoute(
'country_spain',
new Zend_Controller_Router_Route('spain',
array('controller' => 'country',
'action' => 'index'))
);
のようにルートを追加することができますが、この場合には、我々はルートに国のリスト全体を追加する必要があります。すなわち、インド、中国、パキスタン、unitedstatesなど。
は、そのように私たちは50州を持っている場合、国のために地方の数を乗じた国の数を追加するために恐ろしいとなり、都市に移動するとき、これはより多くのルートになりますcountry_province
$router = $ctrl->getRouter();
$router->addRoute(
'country_spain_barcelona',
new Zend_Controller_Router_Route('spain',
array('controller' => 'country',
'action' => 'province'))
);
を追加していく予定および製品。
あなたは
$router = $ctrl->getRouter();
$router->addRoute(
'country',
new Zend_Controller_Router_Route('country/:country/:province/:city/:product',
array('controller' => 'country',
'action' => 'index'))
);
のようなものを追加すると言うかもしれないが、この場合には、その私たちは、同じアクションを指しますように、しかし、要求変更のビューとして、これは脂肪のコントローラになります。
Zend_Controller_Router_Route_Regexの問題は、 example.com/en/country/spain/barcelona/barcelona/taxis
のようなものでなければならず、すべてが単一の動作に移行する必要があります。ビューが全く異なるので、それは汚れになります。私が使うことができる部分のようなものかもしれません。しかし、私は問題を解決するためのもう一つの良い解決策があるのだろうかと思います。これは従来のプロジェクトなので、制限があり、ZFバージョンは1.6です。 //www.travelportal:
http://www.travelportal.info/ http://www.travelportal.info/asia http://www.travelportal.info/asia/india HTTP同様の例のものがございます。info/asia/india/business-currency-economy
あなたはどのようにして、彼らはこれをやったと思いますか、彼らはアジアのようなヨーロッパのために最低でもルートを追加しましたか?
私はそれがCountryController
CountryController
CountryController
にポインティングcityAction
example.com/en/spain/barcelona/barcelona/taxis
にポインティングprovinceAction
example.com/en/spain/barcelona/barcelona
にポインティングindexAction
example.com/en/spain/barcelona
にポインティング
example.com/en/spain
のように動作させることができましたproductAction
しかし、私は4つのルートを追加する必要があり、これは手動でこのようなルートを追加するのが難しくなります。
これを改善するための提案や批判は歓迎します。あなたはあなたの例シナリオごとに別々のルートをしたいよう
1:例えば、そうです。標準ルート - 正しい順序で! - それを処理する必要があります。 ;-) –
このヒントをありがとう、なぜ私はこれについて考えなかったのか分からない、私は月曜日に上記の解決策に取り組み、報告するつもりです。しかし、私がすでに '$ router-> addRoute( 'differentroute'、 new Zend_Controller_Router_Route( ':lang /:something'、array( 'controller' => ')というルートを持っていればどうなるでしょうか? 'action' => 'index' )) ); 'どのルートをとるのですか? –
申し訳ありませんが、このルートの問題はすべてのルートが国のコントローラに移動することです。 –