14

routing.yml では、次のようなことができます。

redirect_old_url_to_new:
    pattern:   /old-pattern
    defaults:  
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: /new-pattern
        permanent: true

URL/old-patternをにリダイレクトし/new-patternます。ただし、パラメーターがある場合、パラメーターを新しいパスにどのように変換できますか。たとえば、次のようになります。

redirect_old_url_to_new:
    pattern:   /old-pattern/{page}
    defaults:  
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: /new-pattern/{page}
        permanent: true

これは機能せず、/new-pattern/{page}文字通り にリダイレクトされるため、 から/old-pattern/23に リダイレクトされ/new-pattern/{page}ます。

4

4 に答える 4

16

パラメータ名が同一の場合、パラメータは自動的に渡されます。

FirstRoute:
  pattern: /firstroute/{page}
  defaults:
      _controller: Bundle:Controller:action

# SecondRoute will redirect to FirstRoute. 
# ex: /secondroute/1 redirects to /firstroute/1            
SecondRoute:
  pattern: /secondroute/{page}
  defaults:
      _controller: FrameworkBundle:Redirect:redirect
      route: FirstRoute
      permanent: true
于 2012-07-11T16:02:27.153 に答える
4

Seems like there is a mistake in Symfony's Book

root:
    pattern: /
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: /app
        permanent: true

As Arms said, it's "FrameworkBundle:Redirect:redirect" and not "FrameworkBundle:Redirect:urlRedirect"

于 2013-10-17T13:43:36.987 に答える
1

以前は間違っていましたが、これは私にとってはうまくいきます:

redirection:
    path: /exercices.html
    defaults:
      _controller: FrameworkBundle:Redirect:redirect
      route: blog
      slug: url-of-the-post
      permanent: true

の直下parameter_name: parameter_valueに置くroute

于 2016-04-25T12:13:09.360 に答える
0

次のように .yml でルートをリダイレクトできます。

root:
    path: redirected_path
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: destination_path
        permanent: true|false

また

root:
    path: redirected_path
    defaults:
        _controller: FrameworkBundle:Redirect:redirect
        route: destination_route_name
        permanent: true|false
于 2015-12-17T15:15:35.307 に答える