1

ルーティングでリダイレクトを正常に作成しました。ページが 1 の場合、URL パラメータ ページなしでメイン コントローラにリダイレクトします。(重複コンテンツのSEO防止)。だから私はこのルートルールを持っています:

default_blog:
    path:     /                                               
    defaults: { _controller: AcmeBlogBundle:Default:index, page: 1}

default_blog_page_first:
    path:     /page/1
    defaults:
        _controller: FrameworkBundle:Redirect:redirect
        route: default_blog
        permanent: true

default_blog_page:
    path:     /page/{page}
    defaults: { _controller: AcmeBlogBundle:Default:index}
    requirements:
        page: \d+

私のページネーションで動作します。最初のページ (/page/1) をクリックすると、/ にリダイレクトされますが、生成パスで既に変換されている可能性はありますか? ただ、default_blog_pageパラメータがあればpage = 1自動的に変換されdefault_blogますか?

したがって、私のページネーションは次のようになります。

URL => Page
-------------------
/ => 1 , /page/2 => 2

任意の小枝テンプレートで:

path('default_blog_page', {'page': 1})

page = 1 を検出すると、自動的に次のように変更されます。

path('default_blog')

出来ますか?

4

1 に答える 1

2

わかりました、私はあなたが何をしたいのか理解していると思います。はい、それは可能です!

これがトリックです。次のコードで default_blog_page ルートを編集します。

default_blog_page:
path:     /{type}/{page}
defaults: { _controller: AcmeBlogBundle:Default:index, type: "page", page: 1}
requirements:
    page: \d+
    type: page

このルートでは、ページ パラメータを設定すると、デフォルトのタイプ値「ページ」が自動的に追加されますが、デフォルト値の場合は追加されません。このルートはすべてのケースを処理するため、リダイレクト ルートを削除できますが。

お役に立てれば :)

于 2013-11-11T14:21:49.537 に答える