silverstripe-framework/docs/en/02_Developer_Guides/02_Controllers/04_Redirection.md

1.3 KiB

title summary icon
Redirection Move users around your site using automatic redirection. reply

Redirection

Controllers can facilitate redirecting users from one place to another using HTTP redirection using the Location HTTP header.

app/code/Page.php

$this->redirect('goherenow');
// redirect to Page::goherenow(), i.e on the contact-us page this will redirect to /contact-us/goherenow/

$this->redirect('goherenow/');
// redirect to the URL on yoursite.com/goherenow/. (note the trailing slash)

$this->redirect('http://google.com');
// redirect to http://google.com

$this->redirectBack();
// go back to the previous page.

Status Codes

The redirect() method takes an optional HTTP status code, either 301 for permanent redirects, or 302 for temporary redirects (default).

$this->redirect('/', 302);
// go back to the homepage, don't cache that this page has moved

Redirection in URL Handling

Controllers can specify redirections in the $url_handlers property rather than defining a method by using the '~' operator.

private static $url_handlers = [
    'players/john' => '~>coach'
];

For more information on $url_handlers see the Routing documentation.

API Documentation