Cakephp 3.1 - Как перенаправить на основе значений строки запроса?
Недавно мы обновили наш сайт с чистого php до cakephp 3, и у нас возникли проблемы с перенаправлением URL-адресов, имеющих параметры, на новый URL-адрес.
Например этот редирект работает нормально
$routes->redirect('/webcast.php', '/webcast', ['status' => 302]);
Но если есть параметры, это не работает
$routes->redirect('/webcast.php?id=100', '/webcast', ['status' => 302]);
Есть идеи?
Благодарю.
1 ответ
Маршрутизатор не поддерживает сопоставление в строках запроса, URL-адрес, передаваемый маршрутизатору при проверке совпадающего маршрута, больше не будет иметь никаких значений строки запроса.
Хотя можно было бы обойти это, используя собственный фильтр диспетчера маршрутизации, пользовательский / расширенный Router
класс и пользовательский / расширенный RouteCollection
Класс, это кажется слишком большой работой для чего-то, что может быть легко определено как, например, правило перезаписи на уровне сервера.
апаш mod_rewrite
пример:
RewriteCond %{QUERY_STRING} ^id=100$
RewriteRule ^webcast\.php$ /webcast? [L,R=302]