Jump to main content Jump to doc navigation

modX::sendRedirect

Отправляет перенаправление на указанный URL-адрес с помощью указанного метода.

Синтаксис

void sendRedirect (string $url, [array|boolean $options = false], [string $type = ''], [string $responseCode = ''])

$url должен быть корректным URL-адресом — его можно построить с помощью modX::makeUrl. Пустой URL не перенаправляется: метод пишет ошибку в лог и возвращается, не отправляя заголовок.

$type и $responseCode устарели с версии 2.0.5 — вместо них используйте ключи type и responseCode в $options. В 3.x они по-прежнему принимаются, но каждый вызов пишет в лог запись об устаревании; передавайте значения в массиве $options.

$options принимает массив (или логическое значение, которое трактуется как флаг count_attempts) с одной или несколькими из следующих пар ключ/значение:

  • type, одно из следующих значений (по умолчанию REDIRECT_HEADER):
    • REDIRECT_REFRESH - использует метод обновления заголовка
    • REDIRECT_META - отправляет на выход тег META HTTP-EQUIV=“Refresh”
    • REDIRECT_HEADER - использует метод расположения заголовка
  • responseCode — полная строка статуса HTTP, а не просто 301 или 302. По умолчанию HTTP/1.1 302 Moved Temporarily; для постоянного перенаправления передавайте HTTP/1.1 301 Moved Permanently.
  • count_attempts (boolean) добавляет к URL счётчик ?err=N, чтобы разорвать циклы перенаправления. После 3 попыток — предел жёстко зашит в код — перенаправление считается фатальным: в лог пишется запись уровня FATAL и отправляется страница фатальной ошибки.
  • preserve_request (boolean) если задан, текущий запрос сохраняется (см. modRequest::preserveRequest) перед перенаправлением, чтобы сохранить referer.

Примеры

Отправьте запрос перенаправления на ресурс с идентификатором 54.

$url = $modx->makeUrl(54);
$modx->sendRedirect($url);

Отправить редирект на modx.com. сделайте это с помощью метатега HTTP-EQUIV refresh.

$modx->sendRedirect('https://modx.com',array('type' => 'REDIRECT_META'));

Отправьте код ответа “301 перемещенный постоянно” вместо кода ответа “302 перемещенного временно” по умолчанию.

$modx->sendRedirect('https://modx.com',array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));

Смотрите также

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • JT Skaggs
  • deJaya
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$194 per month—let's make that $500!

Learn more