Назад | Перейти на главную страницу

LiteSpeed ​​игнорирует статус заголовка 404 PHP

После перемещения моего веб-сайта на веб-хостинг, использующий LiteSpeed, кажется, что заголовок PHP игнорируется.

Я пробовал эти варианты:

с последующим

header($s)

Но в LiteSpeed ​​все это, похоже, игнорируется.

  1. Есть ли в LiteSpeed ​​какой-либо параметр, который я могу отключить, чтобы обеспечить совместимость с Apache? У меня есть доступ к cPanel и .htaccess
  2. Любое другое возможное объяснение и / или решение?

НОТЫ:

Кроме того, на обоих сайтах я отключил кеширование LiteSpeed ​​в моем файле .htaccss.

<IfModule LiteSpeed>
RewriteRule .* - [E=Cache-Control:no-cache]
</IfModule>

Проблему можно продублировать, создав простой

файл test.php, подобный этому

<?php
  $s = $_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found';
  header($s);
  echo '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 ведут себя по-разному, вы можете зарегистрировать заявку.