使用“?”在使用旧网址的过程中

时间:2019-04-25 15:51:15

标签: php laravel laravel-5

我们在互联网上有很多类似/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');

那也不起作用。

我们希望不会丢失所有旧网址。

1 个答案:

答案 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部分。