我想传递一个网址作为我的路线的一部分: 即
或
http://example.com/param1/?url_param=http://example1.com/56474
Route::get('/{param1}/{url_param?}', function($param1, $url_param){});
我在Ubuntu,nginx,Laravel 4。
答案 0 :(得分:0)
如果不通过参数对其进行编码,则不应传递该URL。此外,您不能像第一个示例中那样传递它(将其作为URL的一部分附加),因为您在URL(' /')中有段定界符char来定义协议。
第二个例子是正确的,尽管我建议你使用url_encode()对URL进行编码。
另一种方法是使用B64对URL进行编码,生成一个可以作为URL段附加的字符串。类似的东西:
$URLToBeAppended = base64_encode( 'http://example1.com/564740' );
现在最后的路线看起来像是:
http://example.com/param1/aHR0cDovL2V4YW1wbGUxLmNvbS81NjQ3NDA=
在负责处理该路由的控制器中,您只需解码该B64字符串。