使用Laravel 4.2项目。我想要完成的是将每个URI模式传递给控制器,然后我可以转到数据库,看看我是否需要重定向此URL(我知道我可以在PHP中执行此操作,而不需要通过Laravel,但只是尝试将其用作学习经验。)
所以我现在所拥有的是:
Route::group(array('domain' => 'sub.domain.com'), function()
{
Route::get('?', 'RedirectController@index');
});
我正在路由任何我认为是“重定向子域”的子域名... ?
是我遇到问题的地方。从我所读到的,你应该可以使用“*”来做任何事情,但这似乎不起作用。任何人都知道如何将任何URL传递给控制器?
除此之外,我最好还是要传递完整的URL,以便我可以轻松检查数据库并重定向:
$url = URL::full();
答案 0 :(得分:2)
试试这个:
Route::group(array('domain' => 'sub.domain.com'), function()
{
Route::get('{path}', 'RedirectController@index')
->where('path', '.*');
});
您的控制器将重新设置路径作为第一个参数
public function index($path){
// ...
}
如果您想知道,where
是必需的,因为没有它{path}
只会匹配第一个/
之前的路径。这样,所有字符,即使/
,都被允许作为路由参数