Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Почему DLE отдает заголовок HTTP/1.1 200 OK вместо HTTP/1.1 404 Not Found?

Почему DLE отдает заголовок HTTP/1.1 200 OK вместо HTTP/1.1 404 Not Found?


     28.09.2015    Общие вопросы    973

вопрос
Привет всем.

DLE 10.3 оригинальный дистрибутив
при заходе по ссылке вида:
http://site.ru/blablabla

Я получаю HTTP/1.1 200 OK

Есть для примера на том же веб-сервере DLE 10.1
Если я на нем захожу по такой же ссылке, то я уже получаю HTTP/1.1 404 Not Found.

Содержимое .htaccess
DirectoryIndex index.php

RewriteEngine On

# Редиректы
RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L]

# Сам пост
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/([0-9]+)-(.*).html$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html$ index.php?newsid=$2&news_page=$1&seourl=$3 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html$ engine/print.php?news_page=$1&newsid=$2&seourl=$3 [L]
RewriteRule ^([0-9]+)-(.*).html$ index.php?newsid=$1&seourl=$2 [L]

# За день
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2&day=$3 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&day=$3&cstart=$4 [L]
# За весь месяц
RewriteRule ^([0-9]{4})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&cstart=$3 [L]
# Вывод за весь год
RewriteRule ^([0-9]{4})(/?)+$ index.php?year=$1 [L]
RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ index.php?year=$1&cstart=$2 [L]
# вывод отдельному тегу
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]
# поиск по доп полям
RewriteRule ^xfsearch/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^xfsearch/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
# вывод для отдельного юзера
RewriteRule ^user/([^/]*)/rss.xml$ engine/rss.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)(/?)+$ index.php?subaction=userinfo&user=$1 [L]
RewriteRule ^user/([^/]*)/page/([0-9]+)(/?)+$ index.php?subaction=userinfo&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news(/?)+$ index.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)/news/page/([0-9]+)(/?)+$ index.php?subaction=allnews&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news/rss.xml(/?)+$ engine/rss.php?subaction=allnews&user=$1 [L]
# вывод всех последних новостей
RewriteRule ^lastnews(/?)+$ index.php?do=lastnews [L]
RewriteRule ^lastnews/page/([0-9]+)(/?)+$ index.php?do=lastnews&cstart=$1 [L]
# вывод в виде каталога
RewriteRule ^catalog/([^/]*)/rss.xml$ engine/rss.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)(/?)+$ index.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?catalog=$1&cstart=$2 [L]
# вывод непрочитанных статей
RewriteRule ^newposts(/?)+$ index.php?subaction=newposts [L]
RewriteRule ^newposts/page/([0-9]+)(/?)+$ index.php?subaction=newposts&cstart=$1 [L]
# вывод избранных статей
RewriteRule ^favorites(/?)+$ index.php?do=favorites [L]
RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]

RewriteRule ^rules.html$ index.php?do=rules [L]
RewriteRule ^statistics.html$ index.php?do=stats [L]
RewriteRule ^addnews.html$ index.php?do=addnews [L]
RewriteRule ^rss.xml$ engine/rss.php [L]
RewriteRule ^sitemap.xml$ uploads/sitemap.xml [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]
RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)/rss.xml$ engine/rss.php?do=cat&category=$1 [L]
RewriteRule ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1&seourl=$2 [L]
RewriteRule ^print:([^/]+).html$ engine/print.php?do=static&page=$1&seourl=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1&seourl=$1 [L]


Пробовал добавлять ErrorDocument 404 /404.html
и подгружать 404.html в корень тоже пробовал)

Ответа пока нет


Комментарии пользователей (8)

ПафНутиЙ
1063

3393 | 2433

ПафНутиЙ - 28 сентября 2015 08:40 - Админ

Поковыряйте engine.php или просто настройте редирект на главную, всяко лучше, чем вагон 404 на сайте.

Каков вопрос - таков и ответ. Просто помните об этом.

GrayZOR
1

16 | 6

GrayZOR - 28 сентября 2015 21:38 - Юзер

ПафНутиЙ,
у меня в оригинале engine.php, его не ковырял.

dj-avtosh
39

1479 | 390

dj-avtosh - 29 сентября 2015 03:50 - шашлычник

404 со взгляда сео лучше все-таки чем все на главную рулить. А лучше при помощи XENU найти все битые ссылки со страниц сайта и убрать их.

skype: elhan.isaev

GrayZOR
1

16 | 6

GrayZOR - 29 сентября 2015 15:08 - Юзер

dj-avtosh,
Конечно 404 лучше, но тут дело совсем в другом, что как раз этого нету! Любую не существующию страницу сайта открываешь, она открывается без контента и не выдает сообщение с ошибкой, т.е. если на нее заходит поисковик то, он получает ответ от сервера, как 404, а получает, как 200 OK, соответственно пс считает эту страницу существующей!
Выдает ошибку 404, если по адресу не существующей новости http://site.ru/711-test.html
А если я наберу страницу например http://today-buy.ru/fhnewuigfwe7gyiutest то он не показывает ошибку.
а вот наш дле-фак показывает https://dle-faq.ru/fsdsdsadgheyfgteuwighoi243tg43
Вот где эту фигню исправить!

misha-koder
7

299 | 77

misha-koder - 29 сентября 2015 17:13 - Юзер

В /engine/modules/main.php должны быть следующие строки:

if( $_SERVER['QUERY_STRING'] AND !$tpl->result['content'] AND !$tpl->result['info'] AND !$custom_news) {
    
    @header( "HTTP/1.0 404 Not Found" );
    msgbox( $lang['all_err_1'], $lang['news_err_27'] );

}

Если их нет, добавьте. Если есть, значит проблема кроется в другом месте.

GrayZOR
1

16 | 6

GrayZOR - 30 сентября 2015 09:05 - Юзер

misha-koder,
/engine/modules/main.php нету такого файла, не у меня, не в официальном дистрибутиве версии 10.3.

misha-koder
7

299 | 77

misha-koder - 30 сентября 2015 12:08 - Юзер

А, ну да, это они в 10.4 вынесли код в этот файл. Ищите в /index.php

GrayZOR
1

16 | 6

GrayZOR - 1 октября 2015 14:24 - Юзер

misha-koder,
Есть у меня такой код index.php

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы