Symfony - 限制QueryParams

时间:2014-02-21 22:04:56

标签: symfony routes

如果有一些额外的参数,有没有办法强迫Symfony抛出404?

例如,我有路由/新闻/我想只允许日期参数。所以链接可以以这种形式存在: / news /?date = 243242 ,但如果用户输入以下链接,我想要404: / news /?param = 2

感谢。

(我不想检查控制器中的查询参数,我知道我可以)

2 个答案:

答案 0 :(得分:0)

你真的需要这些才能获得参数吗?您符合您的目标购买,将其作为URL本身的值,例如

@Route("/news/date/{date}")

我知道的情况略有不同 - 但你可以强制执行它

答案 1 :(得分:0)

为什么你还要关心额外的参数?如果一些讨厌的用户决定直接使用URL,那么你的应用程序就不应该正常运行。

不要打扰所有这些检查 - 除非这些参数以某种方式影响安全。


根据您的评论,您希望回复404以摆脱Google中的重复内容。您需要采取几个步骤来解决该问题。

如果用户手动输入额外参数,则无法将页面添加到Google索引。因此,如果您在Google索引中使用基于不同参数的重复页面,则表示您的网站上有这些额外参数的链接。这就是他们最终被编入索引的方式。

你能做的第一件事就是摆脱那些链接。然后,您可以转到Google网站站长工具,并使用索引中的这些额外参数手动删除索引页面。如果您不再有问题链接,他们将无法再次访问索引。

如果由于某种原因您无法摆脱这些链接,请转到网站站长工具并查阅网址参数部分,了解如何添加Google应忽略的参数。