0

最近、サイトを純粋な php から Cakephp 3 に更新しましたが、パラメーターを持つ URL を新しい URL にリダイレクトする際に問題が発生しました。

たとえば、このリダイレクトは正常に機能します

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

ただし、パラメーターがある場合は機能しません

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

何か案は?

ありがとう。

4

1 に答える 1

0

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

Routerカスタム ルーティング ディスパッチャ フィルタ、カスタム/拡張クラス、およびカスタム/拡張クラスを使用してこれを回避することは可能ですがRouteCollection、これは、たとえば、サーバーレベル。

アパッチのmod_rewrite例:

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

301また、通常、推奨されるリダイレクト方法であることに注意してください。

こちらもご覧ください

于 2016-08-30T16:30:37.813 に答える