С помощью '?' в пути для старых URL - PullRequest
0 голосов
/ 25 апреля 2019

У нас есть несколько таких URL /order/step1.php?service=999 в Интернете.

Нужно ли вам просто отказаться от всех ваших старых ссылок, опубликованных в Интернете при переходе на Laravel?

Мы пытались использовать mod_rewrite, чтобы просто переписать URL-адрес на /order/step1/999 но из-за .htaccess для Laravel, который не работает.

RewriteRule ^/order/step1\.php\?service=([0-9]+)$ /order/step1/$1 [L,QSA]

Мы также попытались добавить маршрут в web.php следующим образом:

Route::get('/step-1.php?service={slug}', 'PageController@step1');

и это тоже не работает.

Мы бы хотели, чтобы мы могли не потерять все наши старые URL.

1 Ответ

3 голосов
/ 25 апреля 2019

Учитывая, что URL выглядит так:

/ заказ / step1.php? Обслуживание = 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'
}

Проверьте раздел Извлечение ввода> Извлечение ввода из строки запроса документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...