Ви повинні використовувати drupal_goto () для внутрішніх і зовнішніх переадресацій.
Використовуйте опцію "зовнішній" для зовнішніх переадресацій:
drupal_goto($url, array('external' => TRUE));
drupal_goto ($ path = '', масив $ options = array (), $ http_response_code = 302)
$ options: (необов'язково) Асоціативний масив додаткових опцій із такими елементами:
- 'query' : масив пар запитів ключ / значення (без будь-якого кодування URL) для додавання до URL-адреси.
- 'фрагмент' : ідентифікатор фрагмента (названий якорем) для додавання до URL-адреси. Не включайте провідний символ "#".
- 'абсолютний' : за замовчуванням FALSE. Чи потрібно змушувати вихід бути абсолютною ланкою (починаючи з http :). Корисно для посилань, які відображатимуться поза сайтом, наприклад у RSS-стрічці.
- "псевдонім" : за замовчуванням FALSE. Чи вже вказаний шлях є псевдонімом URL-адреси.
- 'зовнішній' : чи вказаний шлях є зовнішньою URL-адресою.
- 'мова' : необов'язковий мовний об'єкт. Якщо шлях, з яким пов’язано, є внутрішнім для сайту, для пошуку псевдоніма URL-адреси використовується $ options ['language']. Якщо параметри $ options ['language'] опущені, буде використаний глобальний $ language_url.
- "https" : чи повинна вказати ця URL-адреса на безпечне місцеположення. Якщо це не визначено, використовується поточна схема, тож користувач залишається на HTTP або HTTPS відповідно. TRUE примушує HTTPS, а FALSE примушує HTTP, але HTTPS може бути застосовано лише тоді, коли для змінної 'https' встановлено значення TRUE.
- 'base_url' : використовується лише внутрішньо, щоб змінити базову URL-адресу, коли цього вимагає URL-адреса, залежна від мови.
- 'префікс' : використовується лише внутрішньо, щоб змінити шлях, коли цього вимагає URL-адреса, залежна від мови.
- 'script' : ім'я файлу сценарію в кореневому каталозі Drupal, яке використовується, коли чисті URL-адреси відключені, наприклад 'index.php'. За замовчуванням використовується порожня рядок, оскільки більшість сучасних веб-серверів автоматично знаходять "index.php". Якщо чисті URL-адреси відключені, значення $ path додається як параметр запиту 'q' до $ options ['script'] у поверненій URL-адресі. Під час розгортання Drupal на веб-сервері, який не може бути налаштовано для автоматичного пошуку index.php, тоді гак_url_outbound_alter () може бути реалізований для примушення цього значення до "index.php".
- 'type_type' : тип сутності об'єкта, який викликав url (). Встановлюється лише в тому випадку, якщо URL-адреса () викликається суттю_uri ().
- 'сутність' : об'єкт сутності (наприклад, вузол), для якого створюється URL-адреса. Встановлюється лише в тому випадку, якщо URL-адреса () викликається суттю_uri ().
$ http_response_code: (необов’язково) Код статусу HTTP, який використовується для перенаправлення, за замовчуванням до 302. Дійсні значення для кодів статусу переадресації 3xx визначені в RFC 2616 та чернетка нових кодів HTTP-статусу:
301: переміщено постійно (рекомендоване значення для більшості переадресацій).
302: Знайдено (за замовчуванням в Drupal та PHP, іноді використовується для пошукових систем спаму).
303: Див. Інше.
304: Не змінено.
305: Використовуйте проксі.
307: Тимчасовий перенаправлення.
Друпал 8
Drupal 8 видалив функцію drupal_goto , для перенаправлення на зовнішню URL-адресу дивіться цю відповідь на питання: Як мені переадресувати на зовнішню URL-адресу? .