Routes 接受Laravel 4路由中的编码URL

Routes 接受Laravel 4路由中的编码URL,routes,laravel,laravel-4,Routes,Laravel,Laravel 4,我正在开发Laravel4Beta5中的一个网站,我试图将一个编码的URL传递给路由器。问题是,编码的URL中有百分比等,因此它被Laravel阻止。URL使用Javascript函数encodeURIComponent()进行编码 是否有方法覆盖Laravel,以便我可以使用路线中的任何字符? 这是我当前的代码: Route::get('add/{encoded\u url}',函数($encoded\u url) { 返回“URL为:”。rawurldecode($encoded_URL)

我正在开发Laravel4Beta5中的一个网站,我试图将一个编码的URL传递给路由器。问题是,编码的URL中有百分比等,因此它被Laravel阻止。URL使用Javascript函数
encodeURIComponent()
进行编码

是否有方法覆盖Laravel,以便我可以使用路线中的任何字符?

这是我当前的代码:

Route::get('add/{encoded\u url}',函数($encoded\u url)
{
返回“URL为:”。rawurldecode($encoded_URL);
});

我试图通过添加
where('encoded_url','*reg ex*)来覆盖Laravel,但它不起作用(顺便说一句,我对reg-ex不是很好)。

试试这个正则表达式,它将匹配任何字符


Phill的回答是正确的,但我还必须在apache设置中进行更改,以使其正常工作

我必须将以下内容添加到我的httpd.conf文件中:

AllowEncodedSlashes NoDecode
如果您看到的是Apache404NotFound页面,而不是Laravel NotFoundHttpException错误页面,则需要使用此选项

非常明显的解释,但是没有这个Apache正在解码编码的斜杠,所以

http://localhost/add/http%2F%2Fwww.google.co.uk
被传送到

http://localhost/add/http://www.google.co.uk

URL编码斜杠在Laravel中不起作用,因为我认为是一个bug。


此拉取请求将解决该错误。

错误修复被拒绝,因此我编写了一个包。。。github.com/Artistan/urlencode很好,这对我也很有用。然而,当我使用“正常”URLENCDE时,它并没有出现,但当我尝试RAWURLENCDE和解码时,它就像一个符咒一样工作+1.
http://localhost/add/http://www.google.co.uk