silverstripe-framework/docs/en/02_Developer_Guides/02_Controllers/04_Redirection.md
Guy Sartorelli 6639fed05e
Merge pull request #10007 from zemiacsik/patch-5
added comment to be more specific
2022-04-12 21:51:36 +12:00

55 lines
1.3 KiB
Markdown

---
title: Redirection
summary: Move users around your site using automatic redirection.
icon: reply
---
# Redirection
Controllers can facilitate redirecting users from one place to another using `HTTP` redirection using the `Location`
HTTP header.
**app/src/Page.php**
```php
$this->redirect($this->Link('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).
```php
$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.
```php
private static $url_handlers = [
'players/john' => '~>coach'
];
```
For more information on `$url_handlers` see the [Routing](routing) documentation.
## API Documentation
* [Controller](api:SilverStripe\Control\Controller)