Переадресация¶
Для переадресации применяется метод redirect()
:
1 |
|
В качестве параметра path
передается путь, на который будет перенаправляться пользователь. Дополнительный параметр status
задает статусный код переадресации. Если этот параметр не задан, тогда по умолчанию отправляется статусный код 302
, который предполагает временную переадресацию.
С помощью данного метода можно выполнять переадресацию как по относительным путям, так и по абсолютным, в том числе на другие домены.
Переадресация по абсолютному пути:
1 2 3 4 5 6 7 8 |
|
В данном случае при обращении по пути /index
будет идти переадресация на сайт https://xsltdev.ru
.
Переадресация по оносительным путям также не очень сложна, но здесь важно учитывать, как именно определяется адрес для редиректа. Рассмотрим редирект относительно текущего пути, с которого производится редирект. Например:
1 2 3 4 5 6 7 8 9 10 11 |
|
В данном случае будет идти перенаправление с ресурса /home
на ресурс /about
, то есть, условно говоря, с http://localhost:3000/home
на http://localhost:3000/about
.
Теперь рассмотрим похожий пример:
1 2 3 4 5 6 7 8 9 10 11 |
|
Здесь с ресурса /home/bar
также идет переадресация на ресурс about
, однако в реальности теперь это будет не http://localhost:3000/about
, а http://localhost:3000/home/about
. То есть мы как-бы поднимаемся на один уровень вверх - с home/bar
на home/
и затем к нему добавляется about
.
Если нам необходимо выполнить переадресацию не относительно текущего ресурса, а относительно корневого каталога приложения, то в начале адреса ставится слеш:
1 2 3 4 5 6 7 8 9 10 11 |
|
Еще несколько примеров. Переадресация относительно текущего адреса на адрес на том же уровне:
1 2 3 |
|
Здесь идет переадресация с http://localhost:3000/home/foo/bar
на http://localhost:3000/home/foo/about
Переадресация на адрес, который располагается уровнем выше:
1 2 3 |
|
Здесь идет переадресация с http://localhost:3000/home/foo/bar
на http://localhost:3000/home/about
Переадресация на уровень выше:
1 2 3 |
|
Здесь идет переадресация с http://localhost:3000/home/foo/bar
на http://localhost:3000/home/foo
Переадресация на два уровня выше:
1 2 3 |
|
Здесь идет переадресация с http://localhost:3000/home/foo/bar
на http://localhost:3000/home
По умолчанию при редиректе передается статусный код 302
, который указывает, что ресурс временно доступен по новому адресу. Но мы можем указать статусный код 301
, чтобы сделать переадресацию постоянной:
1 |
|