Intereting Posts
В DDD и CQRS для запросов на чтение, что такое стратегия, которая позволяет использовать интерфейсы и простое тестирование? Как отправить форму с помощью PHP? Laravel MethodNotAllowedHttpException в форме POST Fetch Api не может получить сеанс с сервера PHP Удалите первые 4 символа строки с помощью PHP Электронная почта HTML иногда отправляет исходный код Анализ SOAP-ответа Могу ли я использовать зарезервированные имена PHP для своих функций и классов? Цитирование результатов mysqli Как загрузить изображение на сервер localhost, пока путь хранится в базе данных mysql? Отображение значения строки базы данных в функции javascript в PHP Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, массив указан в Производство Php.ini и разработка Пометить пользователей на фотографии, загруженной на страницу facebook Возможно ли динамически перезагрузить PHP-код во время работы скрипта?

Как перенаправить на ту же страницу в PHP

Как я могу перенаправить на ту же страницу с помощью PHP?

Например, локально мой веб-адрес:

http://localhost/myweb/index.php 

Как я могу перенаправить на своем сайте на другую страницу, скажем:

 header("Location: clients.php"); 

Я знаю, что это может быть неправильно, но мне действительно нужно поставить все это? Что, если позже это не http://localhost/ ?

Есть ли способ сделать что-то подобное? Кроме того, у меня много кода, а затем в конце после того, как он завершил обработку некоторого кода … Я пытаюсь перенаправить с этим. Это нормально?

Существует несколько различных свойств $_SERVER ( docs ), которые возвращают информацию о текущей странице, но мой предпочтительный метод заключается в использовании $_SERVER['HTTP_HOST'] :

 header("Location: " . "http://" . $_SERVER['HTTP_HOST'] . $location); 

где $location – путь после домена, начиная с / .

Мой предпочтительный метод для перезагрузки одной и той же страницы – $ _SERVER ['PHP_SELF']

 header('Location: '.$_SERVER['PHP_SELF']); die; 

Не забудьте умереть или выйти после заголовка ();

Редактировать: (Спасибо @RafaelBarros)

Если строка запроса также необходима, используйте

 header('Location:'.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']); die; 

Еще один элегантный

 header("Location: http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"); exit; 

Чтобы быть универсальным, я использую это:

 $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? 'https://' : 'http://'; header('Location: '.$protocol.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI]); exit; 

Мне нравится $_SERVER[REQUEST_URI] потому что он повторно передает mod_rewrite и / или любые переменные GET.

Обнаружение https из https://stackoverflow.com/a/2886224/947370

 header('Location: '.$_SERVER['PHP_SELF']); 

также будет работать

Я правильно использую localhost:

 header('0');