404 ответ сервера - как устранить причину

Здесь обсуждаем и решаем проблемы связанные с именем сайта (Домен) и виртуальным пространством в Интернете (Хостинг).
cefp
Сообщения: 339
Зарегистрирован: Ср окт 17, 2012 6:49 pm
Поблагодарили: 3 раза

404 ответ сервера - как устранить причину

#1

Сообщение cefp » Чт дек 17, 2015 1:35 am

Проблема в следующем. Есть форум на phpbb3.0. Если ввести в сервис проверки ответа сервера адрес главной страницы, то получаем правильный ответ

Код: Выделить всё

HTTP/1.1 200 OK
Но если ввести адрес php страницы с темой, то получаем ответ сервера

Код: Выделить всё

HTTP/1.1 404 Not Found
Но страница рабочая, если на неё зайти через обычный браузер, то можно увидеть рабочую страницу. Как искать причину такой ошибки? Может ли это быть связано с кодом самой страницы или это зависит только от сервера? Попробовал поставить пустой .htcacces, ошибка не пропала. Проверил права доступа к файлу - такие же как и для других. Что еще можно проверить?

Добавлено спустя 2 часа 16 минут 56 секунд:
Кажется нашел причину - дебаг выдает ошибки именно на этой странице.

Добавлено спустя 1 час 51 минуту 48 секунд:
Исправил ошибки, но 404 код остался.
Нашел в файле includes/function.php строки:

Код: Выделить всё

			if ($msg_text == 'ERROR_NO_ATTACHMENT' || $msg_text == 'NO_FORUM' || $msg_text == 'NO_TOPIC' || $msg_text == 'NO_USER')
			{
				send_status_line(404, 'Not Found');
			}
После их удаления код ответа стал 200 как и должен быть. Как можно узнать из-за чего срабатывало условие в первой строке?
d o h o d - s - n u l y a .ru - идеи бизнеса.

Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2210
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 81 раз

Re: 404 ответ сервера - как устранить причину

#2

Сообщение Slash » Чт дек 17, 2015 7:10 am

Попробуй проанализировать через Google Веб Мастер Сканирование > Ошибки сканирования, затем с правой стороны жмем вкладку Ошибка 404, внизу страницы должен появиться список ссылок с этой ошибкой, жмем прямо на одну из ссылок и появляется сообщение с причиной этой ошибки.
404 ответ сервера - как устранить причину - 404.jpg
404 ответ сервера - как устранить причину - 404.jpg (47.85 КБ) 963 просмотра
404 ответ сервера - как устранить причину - Список ссылок.jpg
404 ответ сервера - как устранить причину - Список ссылок.jpg (26.01 КБ) 963 просмотра
404 ответ сервера - как устранить причину - Ошибка 404.jpg
404 ответ сервера - как устранить причину - Ошибка 404.jpg (34 КБ) 963 просмотра

cefp
Сообщения: 339
Зарегистрирован: Ср окт 17, 2012 6:49 pm
Поблагодарили: 3 раза

Re: 404 ответ сервера - как устранить причину

#3

Сообщение cefp » Чт дек 17, 2015 11:53 am

Спасибо за найденную ошибку. Её тоже устранил. Вроде теперь DEBUG ни где не выдает ошибки. В панели вебмастера гугла буду обязательно проверять ситуацию. Там за неделю набиралось около 200 страниц с ошибкой 404. Поэтому процесс длительный. Я раньше не мог понять из-за чего гугл отображает так много ошибочных страниц. Гугл в основном выдавал информацию об ошибке 404 для страниц, которые должны быть с двухсотым кодом. Поэтому удаленный код хочу поставить, когда устраню причину 404 кода.


По поводу ошибки Гугл пишет :"Роботу Googlebot не удалось просканировать URL, поскольку на вашем сайте нет страницы с таким адресом. Обычно ошибки 404 не оказывают влияния на рейтинг вашего сайта в результатах поиска, однако грамотно оформленные страницы 404 могут сделать сайт удобнее для пользователей. "

Сейчас буду искать методом исключения, какая переменная неправильно работает из строки:

Код: Выделить всё

if ($msg_text == 'ERROR_NO_ATTACHMENT' || $msg_text == 'NO_FORUM' || $msg_text == 'NO_TOPIC' || $msg_text == 'NO_USER')
Добавлено спустя 12 минут 5 секунд:
Ошибка связана с

Код: Выделить всё

$msg_text == 'NO_TOPIC'
d o h o d - s - n u l y a .ru - идеи бизнеса.

cefp
Сообщения: 339
Зарегистрирован: Ср окт 17, 2012 6:49 pm
Поблагодарили: 3 раза

Re: 404 ответ сервера - как устранить причину

#4

Сообщение cefp » Чт дек 17, 2015 3:00 pm

Нашел причину, целых три строки в файле viewtopic.php вызывают срабатывание тригера 'NO_TOPIC': 36, 232, 291. Вот фрагменты этих строк вместе с окружающими текстами:

Код: Выделить всё

// Do we have a topic or post id?
if (!$topic_id && !$post_id)
{
	trigger_error('NO_TOPIC');
}

Код: Выделить всё

// link to unapproved post or incorrect link
if (!$topic_data)
{
	// If post_id was submitted, we try at least to display the topic as a last resort...
	if ($post_id && $topic_id)
	{
		redirect(append_sid("{$phpbb_root_path}viewtopic.$phpEx", "t=$topic_id" . (($forum_id) ? "&f=$forum_id" : '')));
	}
	trigger_error('NO_TOPIC');
}

Код: Выделить всё

// Setup look and feel
$user->setup('viewtopic', $topic_data['forum_style']);
if (!$topic_data['topic_approved'] && !$auth->acl_get('m_approve', $forum_id))
{
	trigger_error('NO_TOPIC');
}
d o h o d - s - n u l y a .ru - идеи бизнеса.

Аватара пользователя
Slash
Администратор
Сообщения: 2210
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 81 раз

Re: 404 ответ сервера - как устранить причину

#5

Сообщение Slash » Чт дек 17, 2015 3:39 pm

Видимо, где то не задается переменная, когда тему парсит бот.
Даже не знаю, может ли это связано с настройками правд доступа?

cefp
Сообщения: 339
Зарегистрирован: Ср окт 17, 2012 6:49 pm
Поблагодарили: 3 раза

Re: 404 ответ сервера - как устранить причину

#6

Сообщение cefp » Сб дек 19, 2015 10:00 am

Может быть можно как-то посмотреть как бот, поможет ли это?
Если закомментировать 232 строку, то вместо текста "Страница не найдена" выводится "Вы не авторизованы для чтения этого форума."
d o h o d - s - n u l y a .ru - идеи бизнеса.

cefp
Сообщения: 339
Зарегистрирован: Ср окт 17, 2012 6:49 pm
Поблагодарили: 3 раза

Re: 404 ответ сервера - как устранить причину

#7

Сообщение cefp » Сб дек 19, 2015 10:38 pm

Есть предположение из-за чего у ботов 404 код ответа. В файле роботс (robots.txt) закрыт доступ для ботов почти для всех файлов, которые не должны попадать в индекс. В файле темы, если бот не получил информацию из базы данных, то он получает код ошибки 404. А информацию из базы данных он не может получить, потому что файлы, в которых содержатся нужные строки для доступа к базе данных закрыты в роботс. И как я понял, гугл не только не добавляет закрытые в роботс страницы в индекс, но и не заходит на них, при индексации разрешенных страниц. Возник вопрос, какие файлы открыть в роботс для ботов, так чтобы в индекс не попало слишком много и при этом у ботов был доступ к базе данных?
d o h o d - s - n u l y a .ru - идеи бизнеса.

Аватара пользователя
Slash
Администратор
Сообщения: 2210
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 81 раз

Re: 404 ответ сервера - как устранить причину

#8

Сообщение Slash » Вс дек 20, 2015 9:40 am

cefp писал(а):Может быть можно как-то посмотреть как бот
Да. Посмотреть, как бот можно: Сайт глазами бота
cefp писал(а):А информацию из базы данных он не может получить, потому что файлы, в которых содержатся нужные строки для доступа к базе данных закрыты в роботс.
Может быть такое. Скорее всего у вас есть неправильное правили с:

Код: Выделить всё

Disallow: /viewtopic. ***
Попробуйте так:

Код: Выделить всё

User-agent: *
Disallow: /adm/
Disallow: /faq.php
Disallow: /mcp.php
Disallow: /index.php?
Disallow: /memberlist.php
Disallow: /posting.php
Disallow: /report.php
Disallow: /search.php
Disallow: /ucp.php
Disallow: /viewonline.php
Disallow: /viewtopic.php*p=*
Disallow: /viewtopic.php?t=*

cefp
Сообщения: 339
Зарегистрирован: Ср окт 17, 2012 6:49 pm
Поблагодарили: 3 раза

Re: 404 ответ сервера - как устранить причину

#9

Сообщение cefp » Чт дек 24, 2015 10:43 pm

В панели вебмастера гугл есть инструмент проверки файла robots. Этот сервис показывал, что нужные страницы в нем не закрыты от робота. Также не закрыты файлы стилей. Но иногда робот не мог прочитать файлы стилей. Удалил файл robots и гугл прочитал файл стилей. Потом вернул исходный файл и гугл продолжал нормально видеть страницы. Чтобы такое не повторялось, сделал отдельный блок правил для бота гугла и убрал из него запрет на некоторые файлы. Несколько дней тестирования показывают нормальную работу с сайтом. В панели вебмастера яндекса ни каких проблем не обнаружил.
d o h o d - s - n u l y a .ru - идеи бизнеса.

Ответить Пред. темаСлед. тема

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей