Как сделать редирект пользователя на другую страницу

Ответ

В JavaScript можно сделать редирект несколькими способами:

  1. Через window.location:
window.location.href = 'https://example.com'; // Предпочтительный способ
window.location.replace('https://example.com'); // Без сохранения в истории
  1. Через мета-тег в HTML (если нет доступа к JS):
<meta http-equiv="refresh" content="0; url=https://example.com">
  1. На серверной стороне (например, в Node.js с Express):
res.redirect('/new-page');

Важные нюансы:

  • replace() не сохраняет исходную страницу в истории браузера
  • Редирект через location.href можно отменить, если быстро перейти на другую страницу
  • Для временных редиректов лучше использовать статус 302, для постоянных - 301

Ответ 18+ 🔞

Да ты посмотри, какие у нас, блядь, возможности для редиректа в JavaScript! Прям как в том анекдоте про Герасима — либо так, либо нахуй. Но тут, блядь, вариантов побольше.

Ну, самый классический, как ядрёна вошь, способ — через window.location. Берёшь и пишешь:

window.location.href = 'https://example.com'; // Предпочтительный способ

Вот это, блядь, как по мне, самый нормальный путь. Страница в историю браузера ложится, всё чинно-благородно.

А есть, сука, вариант для максималистов, как тот самый Герасим! Чтобы назад вернуться было нихуя нельзя. Это replace():

window.location.replace('https://example.com'); // Без сохранения в истории

Кинул мешок с Муму в озеро — и всё, блядь, в истории этой страницы нет, вернуться не получится. Жёстко, но иногда надо.

А бывает, JS вообще отключён, или скрипт не загрузился, а перенаправить-то надо! Ну, тут, ёпта, выкручиваемся как можем. Лепим в HTML мета-тег, этакую мартышлюшку:

<meta http-equiv="refresh" content="0; url=https://example.com">

Сказал «ноль» — и сразу впердолил пользователя на новый адрес. Неэлегантно, но работает, блядь.

Ну и, само собой, если ты на сервере сидишь, то там свои плюшки. Взять тот же Express для Node.js:

res.redirect('/new-page');

Красота, блядь! Чисто, быстро, без лишних телодвижений на клиенте.

Важные нюансы, на которых можно, сука, обжечься:

  • Про replace() уже сказал — он историю браузера подтирает, как говно с подошвы. Назад кнопкой не вернёшься.
  • Редирект через location.href — его, в теории, можно отменить, если юзер, блядь, шустрее ветра и успеет куда-то ткнуть, пока страница грузится. Но это из разряда «поймай блоху».
  • А на сервере, чувак, не забывай про статусы! Временный редирект — это 302. А если переезд насовсем, то шли всем 301, чтобы поисковики, эти пидарасы шерстяные, индексы перенесли.

Вот и вся наука. Выбирай способ под задачу, а не как Герасим — сразу топить.