В руководстве по PHP я отмечаю следующее:
HTTP / 1.1 требует абсолютного URI в качестве аргумента для «Location»: включая схему, имя хоста и абсолютный путь, но некоторые клиенты принимают относительные URI.
Чтобы облегчить пользователям предпочтение HTTPS во всем мире , я думаю об изменении заголовков в моих PHP-скриптах из:
header("Location: http://www.example.com/");
для header("Location: //www.example.com/");
Я тестировал приведенный выше код для работы с моим браузером firefox, но я не уверен, что это целесообразная вещь. Или я должен извлечь протокол из переменной $_SERVER
и поместить его.
Обновление HTTPbis позволяет относить URI. Хотя это не упоминается конкретно, это включает URL-адреса, относящиеся к протоколу.
(Это прежде всего обновление спецификации HTTP / 1.1, что документы устанавливают поведение браузера.)
Как и указано в протоколе HTTP , вы должны использовать абсолютный URI . Вы все же можете обнаружить протокол, используя переменную $_SERVER['HTTPS']
, с условием типа:
$ protocol = "http". (! empty ($ _ SERVER ['HTTPS'])? "s": "");