【问题标题】:How do I use Period in Route in Symfony2?如何在 Symfony2 的路由中使用句点?
【发布时间】:2012-06-01 05:41:50
【问题描述】:

我正在尝试在 symfony 中创建一条与以下 url 匹配的路由:

/filename/version/

其中文件名是图像,例如“image.png”和版本,例如“foo”。

MyImageBundle_resize:
    pattern: /{filename}/{sizename}/
    defaults: { _controller: MyImageBundle:ImageResize:resize }

这匹配模式/myfile/XXL/,例如。但是当我使用 myfile.jpg 时,如/myfile.jpg/XXL/ Symfony 似乎在句号上中断,并返回 404。我发现这个article 这表明除了“/”之外的所有内容都将匹配(这没有任何意义如果期间在这里中断)。

有没有办法让我在期间进行路线匹配?

【问题讨论】:

  • 它是 Symfony 生成的 404 还是标准的 Web 服务器 404?我只是想知道它是否是 .htaccess 或 nginx 规则在某处冲突。
  • 我正在运行 php app/console assetic:dump --env=dev --watch 所以不是 apache/nginx 相关恕我直言。

标签: symfony routes


【解决方案1】:

您不需要在 URL 中允许斜杠。只需使用简单的路线:

file_check:
    pattern:  /check/{filename}/{version}
    defaults: { _controller: AcmeDemoBundle:File:check }

在你的控制器中使用:

public function checkAction($filename, $version)
{
    //some action
}

【讨论】:

  • 我编辑了我的答案,基本上说这就是我使用的(除非我遗漏了什么)。例如,如果我的文件名是“myfile.jpg”,我会在您的示例中得到 404。
  • 那不是 Symfony 造成的,而是环境造成的。对我来说,这很好。
  • 你是对的 - 是 PHP 5.4 的内置 Web 服务器引发了错误!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
相关资源
最近更新 更多