没有前缀的 Symfony2 路由

Symfony2 routing without prefix

在我的 Symfony 项目中,我有:

  1. example.com/用户/用户名 => 转到用户个人资料
  2. example.com/blog/theweathertoday => 转到动态页面 post 博客
  3. example.com/whoarewe => routig.yml
  4. 中定义的静态页面

我想实现:

  1. 示例。com/username => 转到用户个人资料
  2. 示例。com/theweathertoday => 转到动态页面 post 博客
  3. 示例。com/whoarewe => 静态页面

你能告诉我最好的方法是什么吗:

最好的方法是什么?

更改示例。com/user/username 更改为示例。com/username 我认为您只需删除 之一中的 /user routing.yml 个文件。与 /博客 相同。这些文件可以在 Resources/config 目录或 app/config 目录中的 Bundle 目录下找到。

routing.yml文件只是加载路由的一种方式,但还有many other ways. One way, which you may need, is a custom route loader.

由于路由加载器被定义为服务,您可以将其他服务注入其中,例如用户名检查器,它也可以被应用程序中验证新用户注册的部分重新使用。

如果不这样做,您需要将匹配 ^/[^/]+ 的所有流量路由到某种中间前端控制器,该控制器将采用匹配的参数并决定如何转发它。

您的问题的完整答案需要大量工作,但希望这能让您朝着正确的方向开始。