0

正規表現ルートのリバースに問題があります。構成ファイルは次のとおりです。

routes.route1.type = "Zend_Controller_Router_Route_Regex"
routes.route1.route = "([^\,]+)([^p]*)(?:\,page_[0-9]+)?\.html"
routes.route1.defaults.controller = "index"
routes.route1.defaults.action = "find"
routes.route1.map.1 = "url_path"
routes.route1.map.2 = "url"
routes.route1.map.3 = "options"
routes.route1.map.4 = "page"
routes.route1.reverse = "%s%s,page_%d.html"

URL はhttp://www.site.com/cat1/cat2/cat3/cat4/cat5/title-id1_id2,page_1.htmlになります。 カテゴリの数は指定されていません。現在の正規表現は正常に機能し、一度にすべてのカテゴリを取得します。ただし、逆の形式ではすべてのスラッシュが html 形式にフォーマットされます: %2F スラッシュを保持する方法を知っている人はいますか? ページネーションには逆が必要で、すべての html エンティティが見苦しく見えます。

どうも :)

4

1 に答える 1

3

URLヘルパーを使用している場合は、4番目のパラメーターをfalseに設定して、エンコードを無効にします(デフォルトでオンになっています)。だから次のようなもの:

<?=$this->url(array(
   'url_path' => 'whatever',
   'url' => 'something'
   'options' => 'foo',
   'page' => 'bar'
), 'route1', false, false)?>
于 2009-05-11T20:54:12.487 に答える