2016-08-29 27 views
0

最近私たちのサイトは純粋なphpからcakephp 3に更新され、パラメータを持つURLを新しいURLにリダイレクトすることができませんでした。このリダイレクトはCakephp 3.1 - クエリ文字列の値に基づいてリダイレクトする方法は?

$routes->redirect('/webcast.php', '/webcast', ['status' => 302]); 

正常に動作しますが、パラメータはありますならば、それは

$routes->redirect('/webcast.php?id=100', '/webcast', ['status' => 302]); 

任意のアイデアは動作しません。たとえば

ありがとうございました。

答えて

0

ルータはクエリ文字列とのマッチングをサポートしていません。一致するルートを確認するときにルータに渡されるURLには、クエリ文字列値がもう付加されません。

カスタムルーティングディスパッチャフィルタ、カスタム/拡張Routerクラス、カスタム/拡張RouteCollectionクラスを使用することでこれを回避することは可能ですが、これは次のように簡単に定義できます。たとえば、サーバーレベルでの書き換えルールです。

Apacheのmod_rewrite例:ヘルプNDMため

RewriteCond %{QUERY_STRING} ^id=100$ 
RewriteRule ^webcast\.php$ /webcast? [L,R=302] 
+0

感謝。これは完全に機能しました。 – robb

関連する問題