我们在互联网上有很多类似/order/step1.php?service=999
的URL。
迁移到Laravel时,是否只需要放弃所有在Internet上发布的旧链接?
我们试图使用mod_rewrite
简单地将URL重写为/order/step1/999
,但是由于Laravel的.htaccess无法正常工作。
RewriteRule ^/order/step1\.php\?service=([0-9]+)$ /order/step1/$1 [L,QSA]
我们还尝试过将路由添加到web.php中,如下所示:
Route::get('/step-1.php?service={slug}', 'PageController@step1');
那也不起作用。
我们希望不会丢失所有旧网址。
答案 0 :(得分:3)
鉴于该网址是这样的:
/order/step1.php?service=999
?service=999
段可以用作查询参数。所以我认为这应该可以解决问题:
Route::get('order/step-1.php', 'PageController@step1');
然后在您的控制器中:
# PageController.php
public function step1(Request $request)
{
$slug = $request->query('service');
dd($slug) // '999'
}
检查文档的Retrieving Input > Retrieving Input From The Query String部分。