Laravel 5路由网址过滤

时间:2016-10-16 08:37:26

标签: php laravel laravel-5 laravel-routing

您好我使用laravel 5作为我的项目。

我的路线如下:

news/some-news-title/galery?page=2#photo/

它适用于我的分页画廊。但我看到,当我添加额外的参数end到url时,它仍然有效。

示例:

news/some-news-title/galery?page=2/amp
news/some-news-title/galery?page=2/asdasd
通常它不应该工作。但它显示了相同的画廊页面。

我尝试了一些代码,但它对我不起作用:

Route::any('news/{any}/{any?}/amp', function(){
   return 'error';
});

Route::any('news/{any}/{any}/{any}', function(){
   return 'error';
});

尝试这些代码时,它仍会打开同一页。

如何阻止或重定向此参数到404页面?

谢谢!

1 个答案:

答案 0 :(得分:1)

  

它适用于我的分页画廊。但是,当我添加时,我看到了   额外的参数结束到url,它仍然有效。

这似乎是正确的行为。

让我们看一下你的网址

可能类似于http://example.com/news/some-news-title/galery?page=2#photo/anythingelse

我已在http://www.freeformatter.com检查了它,并说:

enter image description here

现在你关注网址的最后一部分(哈希)。

根据wikipedia

  

由哈希标记#引入的片段标识符是文档URL的可选最后部分。它通常用于标识该文档的一部分。

简单来说,您无法过滤哈希部分,因为它属于当前文档,并被视为 URL的最后一部分