Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
36 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 8
1

Перестал работать Header

18.01.2013, 10:43. Показов 1709. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Переехали на новый хостинг. В скриптах и файле .htaccess ничего не меняли. Перестал работать Header.

.htaccess:
Код
ErrorDocument 404 /default.php
ErrorDocument 401 /default.php
Файл default.php:
PHP
1
2
3
<?php 
Header('http/1.0: 200 Ok');
Header('Content-Type: text/html; charset=WINDOWS-1251');
В выдаче:
Код
HTTP/1.1 404 Not Found
Date: Fri, 18 Jan 2013 06:32:37 GMT
Server: Apache/2.0.52 (Red Hat) PHP/5.2.17 FrontPage/5.0.2.2635
X-Powered-By: PHP/4.4.9
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=WINDOWS-1251
Что-то в настройках Apache не так? Или может быть можно исправить в .htaccess
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2013, 10:43
Ответы с готовыми решениями:

Перестал работать header
Добрый день! перестало работать перенаправление на следующий шаг Не могу понять в чем дело. вот...

Неожиданно перестал работать 302 редирект в header
Здравствуйте! Друзья, прошу вашей помощи. Я новичок, поэтому буду признателен за объяснение &quot;на...

CURL перестал работать
Здравствуйте, перестал работать CURL скрипт по выдергиванию товаров с сайта. Не могу понять что...

Перестал работать RewriteEngine
Здраствуйте уважаемые форумчане. Почему то перестал работать RewriteEngine. Вот код. ...

16
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
18.01.2013, 14:58 2
Цитата Сообщение от Kuskow Посмотреть сообщение
PHP
1
2
Header('http/1.0: 200 Ok'); 
Header('Content-Type: text/html; charset=WINDOWS-1251');
Как вариант, функция пишется с малой буквы

PHP
1
2
header('http/1.0: 200 Ok');
header('Content-Type: text/html; charset=WINDOWS-1251');
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
18.01.2013, 15:11 3
php регистрозависим только в отношении переменных. Вообще, непонятно, зачем отдавать статус 200 - если все нормально, он и так его отдаст..

Добавлено через 35 секунд
проверьте сам путь к файлу, раз 404 ошибку выдает
0
36 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 8
18.01.2013, 15:32  [ТС] 4
Дело в том, что все страницы на сайте обрабатывает один скрипт default.php, то есть, он отвечает на все url, формируя http-страницу. Поэтому независимо от того, какой url с сайта был запрошен, управление передаётся этому скрипту (см. .htaccess).

Дальше если страница есть, то скрипт должен выдать эту страницу, но прежде он должен выдать 200. Страница выдаётся, но перед выдачей идёт код 404, поэтому ЛЮДИ, зашедшие на сайт, всё видят хорошо, но поисковые РОБОТЫ этот сайт увидеть во всех страницах не могут - для роботов страницы не существуют.

С путём к файлу всё нормально, файл работает. Вся проблема только в том, что заголовок 'http/1.0: 200 Ok', передаваемый функцией header, игнорируется.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
18.01.2013, 15:42 5

Не по теме:

Цитата Сообщение от Kuskow Посмотреть сообщение
Дальше если страница есть, то скрипт должен выдать эту страницу, но прежде он должен выдать 200.
это бред, извините :)


Проверьте robots.txt, .htaccess - нет ли там запретов для поисковиков?
Если ничего нет - то не знаю, в чем может быть проблема..
0
36 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 8
18.01.2013, 15:51  [ТС] 6
Дело точно вовсе не в поисковиках. Я же вижу, что страница приходит с заголовоком 'HTTP/1.1 404 Not Found', а должна приходить с другим заголовком, который я написал в скрипте. И это именно этот скрипт работает, потому что следующая функция Header отрабатывает нормально и выдаёт в HTTP-заголовок Content-Type правильно. Не срабатывает только выдача статуса в заголовок.
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
18.01.2013, 15:57 7
Двоеточие уберите после протокола.
Код
HTTP/1.0 200 OK
0
36 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 8
18.01.2013, 16:03  [ТС] 8
Двоеточие убирал - ничего не вышло. Протокол 1.1 ставил - тоже бесполезно. Да и на прежнем хостинге ведь с двоеточем работало.
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
18.01.2013, 16:23 9
Проблема может относиться и к Апачу, и к PHP - версии обоих не слишком новые.

Добавлено через 2 минуты
Идентичный вопрос: http://www.mail-archive.com/ph... 21235.html (англ.)
0
36 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 8
18.01.2013, 17:04  [ТС] 10
Вот вполне возможно. То есть, PHP не может перекрыть заголовок Апача. И, как я понимаю, в этом случае хостер должен разбираться с версиями и настройками? У себя внутри я ничего не сделаю?
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
19.01.2013, 19:14 11
Цитата Сообщение от Kuskow Посмотреть сообщение
У себя внутри я ничего не сделаю?
Насколько мне известно, через .htaccess это поведение не изменить.
Так что остается только рассчитывать на хостера.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
19.01.2013, 19:18 12
Цитата Сообщение от Kuskow Посмотреть сообщение
То есть, PHP не может перекрыть заголовок Апача
наоборот.
0
36 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 8
19.01.2013, 19:27  [ТС] 13
Как это наоборот?
Apache видит, что такого файла нет и пишет 404.
PHP хочет написать 200, но у него не получается это сделать.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
19.01.2013, 19:31 14
Kuskow, php и не знает об этом просто - апач уже обработал файл

Добавлено через 56 секунд
хотите проверить - установите разную кодировку через .htaccess и php, посмотрите какая будет установлена в итоге
0
36 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 8
19.01.2013, 19:40  [ТС] 15
Кодировку проверял. Устанавливается та, которую PHP прописал. не устанавливается только статус ошибки (200, 401, 404, 301)
0
36 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 8
31.01.2013, 13:54  [ТС] 16
Решение провайдером было найдено такое:
PHP
1
Header("Status: 200 OK");
Вот никогда б не подумал. Всё работает теперь нормально.
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
01.02.2013, 10:55 17
Значит PHP работает через CGI. Логично, но почему-то я не подумал об этом сразу.
0
01.02.2013, 10:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2013, 10:55
Помогаю со студенческими работами здесь

Перестал работать код
php код который генерирует капчу перестал работать. Ошибок нет, ничего не менял, раньше работал. В...

Почему перестал работать $_POST ???
Почему перестал работать $_POST ???? if(isset($_POST)) $car=trim($_POST); else $car=&quot;bmw&quot;;С...

Метод post перестал работать
Имеется файл index.php &lt;? header('Content-Type: text/html; charset=utf-8'); ?&gt; &lt;!DOCTYPE...

CRON (задание) перестал работать
* * * * * curl -s &quot;http://address.kz/xreaders/orders.php&quot; перестал работать * * * * * curl -s...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru