После перемещения моего веб-сайта на веб-хостинг, использующий LiteSpeed, кажется, что заголовок PHP игнорируется.
Я пробовал следующие варианты:
$ s =" HTTP / 1.1 404 Нет Найдено ";
$ s =" HTTP / 1.0 404 не найдено ";
$ s =" Статус: 404 не найден ";
$ s = $ _SERVER [" SERVER_PROTOCOL "]. '404 Not Found ';
, за которым следует
header($s)
Но в LiteSpeed все это, похоже, игнорируется.
ПРИМЕЧАНИЯ: php, как этот
<?php
$s = $_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found';
header($s);
echo 'test';
?>
А затем попробуйте запрос test? id = 2
NotePad ++ был настроен на использование «Кодировать с UTF8», а не «Кодировать с UTF8 без спецификации»
Это означало, что некоторые файлы включали «невидимую» ведущую спецификацию.
Я был проверка HTTP-запроса и ответа в режиме разработчика-браузера, но там спецификация была невидимой.
...
header () в PHP (конечно) не будет работать, если вы уже выводите что-нибудь перед заголовками
...
Я подозреваю, что причина, по которой у меня никогда не было этой проблемы на Apache, заключалась в том, что она автоматически исправлялась
В большинстве случаев LSWS будет вести себя так же, как apache.
Если у вас есть root-доступ по ssh к серверу или панели управления WHM, вы можете попробовать переключаться между apache и LSWS, чтобы посмотрите, ведут ли они себя так же.
переключиться на apache: /usr/local/lsws/admin/misc/cp_switch_ws.sh apache перейти на LSWS /usr/local/lsws/admin/misc/cp_switch_ws.sh lsws
Если это так, вам может потребоваться проверить свой PHP-код или правила перезаписи, чтобы увидеть, где не так.
Если Apache и LSWS ведут себя по-разному, вы можете зарегистрировать тикет.