При перенаправлении обрабатывается ли перенаправленная страница? - PullRequest
1 голос
/ 25 октября 2010

Я поместил код перенаправления вверху страницы с кодом начальной загрузки ниже.Создает ли перенаправление другой процесс, превращая процесс перенаправления страницы в фоновый, или он полностью убивает текущий процесс?

Я использую header () для перенаправления, но, что удивительно, оставшийся код под header () требует подключения к базе данных.казнили.Это меня заинтересовало.

Ответы [ 3 ]

2 голосов
/ 25 октября 2010

Во-первых, вы никогда не должны называть header() просто так, если только вы не уверены, что помощники Drupal не подходят (я никогда не сталкивался с такой ситуацией за 10+ лет разработки Drupal)

header() не будет вызывать функции выключения и другие функции закрытия в Drupal, что приведет к потенциально нарушенным сеансам, неправильной статистике и сломанным модулям (которые зависят от вызываемого закрытия). Тот факт, что сокеты и другие низкоуровневые ресурсы не закрываются в таких случаях, может в какой-то момент даже вызвать сбой вашего сервера Apache (или других серверов).

Скорее вызовите drupal_set_header () , если вы хотите установить заголовок. В девяти случаях из десяти вам нужен заголовок перенаправления, в этом случае лучше всего вызывать drupal_goto () , который выполняет все закрытие и даже поддерживает параметры назначения, которым нужно следовать.

В drupal_goto все процессы убиты (см. exit() внизу), следовательно, запущенный процесс не будет сохранен. module_invoke_all('exit') будет следить за тем, чтобы все модули по очереди закрывали свои гнезда, соединения и многое другое.

0 голосов
/ 25 октября 2010

Насколько я понимаю, если вы перенаправляете напрямую из файла apache htaccess, новый процесс не будет создан.Если используется функция header (), она отправляет ответ серверу apache, и apache перенаправляет страницу.В обоих случаях новый процесс не был создан;но последний запускает скрипт php перед перенаправлением (дороже?).

0 голосов
/ 25 октября 2010

Насколько я понимаю, один процесс обслуживает как исходный запрос, так и запрос на перенаправление. Запрос на перенаправление обрабатывается после завершения исходного запроса.

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

...