Если вы не хотите ничего запускать:
header('..');
exit;
Если вы хотите быть достаточно уверенным, остальные работают:
header('..');
ignore_user_abort(true);
На самом деле, 301 и 302 могут содержать тело в соответствии с определением HTTP (формулировка "Если метод запроса не был HEAD, объект ответа ДОЛЖЕН содержать короткую гипертекстовую заметку с гиперссылкой на новый URI (s). ") и, действительно, если ваш браузер поддерживает это, вы можете просто (временно) отключить перенаправления и посмотреть фактическую страницу, отображаемую. Будет ли браузер выполнять перенаправление сразу после заголовка или дождаться завершения всего запроса, зависит от самого пользовательского агента. Он будет ожидать всех заголовков, хотя в моем опыте (например, заголовки cookie), поэтому не имеет значения, вызывать ли его до или после начального заголовка перенаправления, но убедитесь, что вы отправили его перед любым содержимым / телом.
Существуют ограничения на использование ignore_session_abort()
, обычного тайм-аута самого веб-сервера, и применяются отключения из-за настроек в самом веб-сервере. Если у вас есть процесс, который занимает много времени, вы не должны занимать процесс веб-сервера, когда он не выполняет HTTP-коммуникацию. В этом случае асинхронная система работы, такая как Gearman, может быть больше, чем вы ищете.