Cakephp 3.1 - 如何根据查询字符串值进行重定向?
Cakephp 3.1 - How to redirect based on query string values?
我们最近将我们的网站从纯 php 更新为蛋糕 php 3,并且无法将具有参数的 url 重定向到新的 url。
例如这个重定向工作正常
$routes->redirect('/webcast.php', '/webcast', ['status' => 302]);
但是如果有参数就不行
$routes->redirect('/webcast.php?id=100', '/webcast', ['status' => 302]);
有什么想法吗?
谢谢。
路由器不支持查询字符串匹配,检查匹配路由时传递给路由器的 URL 将不再附加任何查询字符串值。
虽然可以通过使用自定义路由调度程序过滤器来解决此问题,但 custom/extended Router
class 和 custom/extended RouteCollection
class,对于可以轻松定义为例如服务器级别的重写规则的东西来说,这似乎工作太多了。
Apache mod_rewrite
示例:
RewriteCond %{QUERY_STRING} ^id=100$
RewriteRule ^webcast\.php$ /webcast? [L,R=302]
并注意 301
is usually the preferred redirect method.
另见
我们最近将我们的网站从纯 php 更新为蛋糕 php 3,并且无法将具有参数的 url 重定向到新的 url。
例如这个重定向工作正常
$routes->redirect('/webcast.php', '/webcast', ['status' => 302]);
但是如果有参数就不行
$routes->redirect('/webcast.php?id=100', '/webcast', ['status' => 302]);
有什么想法吗?
谢谢。
路由器不支持查询字符串匹配,检查匹配路由时传递给路由器的 URL 将不再附加任何查询字符串值。
虽然可以通过使用自定义路由调度程序过滤器来解决此问题,但 custom/extended Router
class 和 custom/extended RouteCollection
class,对于可以轻松定义为例如服务器级别的重写规则的东西来说,这似乎工作太多了。
Apache mod_rewrite
示例:
RewriteCond %{QUERY_STRING} ^id=100$
RewriteRule ^webcast\.php$ /webcast? [L,R=302]
并注意 301
is usually the preferred redirect method.
另见