CakePHP - Redirect Routing



Redirect routing is useful when we want to inform client applications that this URL has been moved. The URL can be redirected using the following function.

static Cake\Routing\Router::redirect($route, $url, $options =[])

There are three arguments to the above function −

  • A string describing the template of the route.

  • A URL to redirect to.

  • An array matching the named elements in the route to regular expressions which that element should match.

Example

Make Changes in the config/routes.php file as shown below. Here, we have used controllers that were created previously.

config/routes.php

<?php
   use Cake\Core\Plugin;
   use Cake\Routing\RouteBuilder;
   use Cake\Routing\Router;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('/generate2', ['controller' => 'Tests', 'action' => 'index']);
      $routes->redirect('/generate1','http://tutorialspoint.com/');
      $routes->connect('/generate_url',['controller'=>'Generates','action'=>'index']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();

Execute the above example by visiting the following URLs.

  • URL 1 — http://localhost:85/CakePHP/generate_url

  • URL 2 — http://localhost:85/CakePHP/generate1

  • URL 3 — http://localhost:85/CakePHP/generate2

Output for URL 1

Generates Routing

Output for URL 2

You will be redirected to http://tutorialspoint.com

Output for URL 3

Generates Routing
Advertisements