ホームページ >バックエンド開発 >PHPチュートリアル >CakePHP はルートリダイレクトをどのように実行しますか?
CakePHP は、Web アプリケーションを構築するための人気のある PHP MVC フレームワークです。 CakePHP では、ルーティングはアクセス URL をアプリケーション内の対応するコントローラーとアクションに変換するプロセスです。場合によっては、ユーザーが訪問した URL をアプリケーション内の指定されたルートに正しくマッピングできるように、特定の URL をリダイレクトする必要があります。この記事では、CakePHP でルートリダイレクトを実行する方法を紹介します。
リダイレクト ルーティングとは、エンジンのルーティング フェーズ中に、ある URL を別の URL にリダイレクトするメカニズムを指します。 CakePHP では、 Router::redirect() メソッドを使用してルート リダイレクトを実装できます。このメソッドは、リダイレクト先の URL とリダイレクト先の URL の 2 つのパラメーターを受け入れます。たとえば、「/about」へのアクセスを「/pages/about」にリダイレクトするには、次のコードを使用できます。
Router::redirect('/about', '/pages/about');
上記のコードは、「/about」 URL と一致し、「」にリダイレクトします。 /ページ/約」。このコードをroutes.phpファイルに追加すると、アプリケーション内の任意の場所でルートを確実にリダイレクトできます。
特定のリクエストをまったく別の URL にリダイレクトする場合は、2 番目のパラメーターに完全な URL を指定できます。例:
Router::redirect('/old-page', 'http://www.example.com/new-page');
上記のコードは、「/old-page」URL と一致し、「http://www.example.com/new-page」にリダイレクトします。
CakePHP のルーターは、特定の URL と一致する正規表現の使用もサポートしています。正規表現は、URL 内のさまざまなタイプの値をキャプチャできる柔軟なパターン マッチング メカニズムです。正規表現ルーティングを使用するには、Router::connect() メソッドを使用し、最初のパラメータに URL パターンを指定する必要があります。これは正規表現である必要があります。たとえば、次のコードは、「/view/」で始まり、その後に数字が続くすべての URL と一致し、その数字をパラメーターとして View コントローラーのビュー アクションに渡します。 " /view/123" のようなものと一致し、数値 "123" をパラメーターとして View コントローラーのビュー操作に渡します。ルーターで正規表現を使用して、さまざまなルート リダイレクトを実装できます。
Modify Default Router の使用Router::connect( '/view/:id', array('controller' => 'view', 'action' => 'view'), array('id' => '[0-9]+') );上記のコードは「/old-page」URL に一致し、「/」にリダイレクトします。新しいページ"。これは、CustomRouter クラスを定義し、その parse() メソッドをオーバーライドすることによって実現されます。 parse() メソッドは CakeRoute クラスの一部であり、通常は URL を解析し、それらをコントローラーとアクションに変換するために使用されます。上記の例では、メソッドを拡張してカスタム ルーターのリダイレクト動作を実装しました。 概要上記は、CakePHP でのルート リダイレクトのいくつかの方法です。リダイレクト ルーティング、正規表現、カスタム ルーターを使用すると、アプリケーションのルーティング動作をカスタマイズし、URL リダイレクトを管理できます。この記事がお役に立てば幸いです。
以上がCakePHP はルートリダイレクトをどのように実行しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。