Как заменить код 404 на код 410 с помощью .htaccess?

Обсуждение любых вопросов связанных с файлами конфигурации .htaccess

Как заменить код 404 на код 410 с помощью .htaccess?

Сообщение RotidE » Вс июн 24, 2012 1:53 pm

Здравствуйте!

Со временем создания и изменения сайта было удалено и/или переименовано довольно большое количество страниц.
К сожалению, поисковики успели просканировать былые страницы и внести их в свой индекс.
Сейчас показывается 80 страниц с ошибками 404.

Вот, что я вычитал в справке гугл:

Рекомендуется настроить веб-сайт так, чтобы при запросе несуществующих страниц возвращался бы код ответа 404 (страница не найдена) или 410 (страница удалена).


Как я понимаю, сейчас робо-гугл думает, что страница временно не доступна, т.к. приходит ответ 404.
Когда вместо 404 придет ответ 410 гугл тут же удалит индексацию несуществующих страниц. В Яндексе такая же история, полагаю на код 410 он ответит тем же, хоть и немного позже.

Если написать просто:
ErrorDocument 404 /404.html
То браузеру не возвращается никакой статус

Если писать редиректом:
Redirect gone /stranica1.html http://www.moi_sait.ru/new_stranica1.html
тогда:
1. перечисление всех 80 адресов страниц займет уйму времени.
2. возможно из этих 80 есть рабочие и можно ее вписать в .htaccess случайно, т.к. проверить все 80 страниц на проявления жизни не представляется возможным.

Вопрос:
Возможно ли в .htaccess создать вот такую строку и будет ли она работать как нужно?:
ErrorDocument 404 Redirect gone / http://404.html

Задача:
При попытке доступа к несуществующей (или уже несуществующей) странице (код 404) происходило перенаправление на мою страницу 404.html и в момент перехода браузеру (или поисковому роботу) отдавался статус -gone (410 - убран).


Помогите, пожалуйста!
Из каждой ситуации есть два выхода: первый, второй и третий.
Самый эффективный из них - четвертый.
Аватар пользователя
RotidE
 
Сообщений: 4
Зарегистрирован: Вс июн 24, 2012 11:32 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Неужели вся инфа на этом сайте просто рерайт или копи-паст?

Сообщение RotidE » Чт июн 28, 2012 5:19 pm

Неужели тут никого не бывает, кто действительно разбирается как пишется содержимое файла .htaccess?

Все, что мне удалось выяснить на данный момент, это то, что строка со статусом "gone" должна выглядеть не так как описывается на этом сайте и на других сайтах подобного содержания:
Redirect 410 /123.html http://www.moi_sait.ru/new_stranica1.html

Строка перенаправления со статусом "gone" должна выглядеть так:
Redirect 410 /123.html
или так:
Redirect gone /123.html

т.е. "куда перенаправлять" вписывать не нужно, иначе все страницы сайта (и существующие и не существующие) будут давать ошибку 500.
Об этом не говорится нигде.


Но как же сделать так, чтобы ВСЕ страницы 404 возвращали статус не 404, а 410!?

Возможно ли написание строки такого вида:
Redirect 410 ErrorDocument 404 /404.html
и будет ли это работать?

Есть ли здесь знатоки?
Из каждой ситуации есть два выхода: первый, второй и третий.
Самый эффективный из них - четвертый.
Аватар пользователя
RotidE
 
Сообщений: 4
Зарегистрирован: Вс июн 24, 2012 11:32 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Alexx » Вс июл 08, 2012 8:21 am

RotidE писал(а):Неужели тут никого не бывает, кто действительно разбирается как пишется содержимое файла .htaccess?

Все, что мне удалось выяснить на данный момент, это то, что строка со статусом "gone" должна выглядеть не так как описывается на этом сайте и на других сайтах подобного содержания:
Redirect 410 /123.html http://www.moi_sait.ru/new_stranica1.html

Строка перенаправления со статусом "gone" должна выглядеть так:
Redirect 410 /123.html
или так:
Redirect gone /123.html

т.е. "куда перенаправлять" вписывать не нужно, иначе все страницы сайта (и существующие и не существующие) будут давать ошибку 500.
Об этом не говорится нигде.


Но как же сделать так, чтобы ВСЕ страницы 404 возвращали статус не 404, а 410!?

Возможно ли написание строки такого вида:
Redirect 410 ErrorDocument 404 /404.html
и будет ли это работать?

Есть ли здесь знатоки?


Первое то что на конкретном веб сервере выдается 500 ошибка при попытке включить какую либо директиву конфигурационного файла как правило абсолютно не значит что сама по себе директива не рабочая. Вероятнее всего просто или версия веб сервера другая или что более вероятно конкретная команда запрещена в опция конфигурации данного веб сервера или вы просто напросто допустили где то ошибку или опечатку... ну это из моей практики :lol:

Второе насчет 404 ошибки - по заверениям разработчиков яндекса - сервиса веб-мастера (да и просто по технологии - 404 -ошибка означает что документа больше нет) - при получении 404 ошибки страница удаляется из поиска автоматически через 1,5-2 месяца с момента первого обнаружения 404 ошибки при условии что на данную страницу больше нет ссылок из рабочих - оставшихся страниц на сайте. Если на удаленную страницу по прежнему ведет хотя бы 1 ссылка не важна из меню или из контента по заверению разреботчиков яндекса такая страница удаляться сразу не будет.. только по истечению 6 месяцев и более в зависимости от авторитетности весов данной удаленной страницы -

Третье понять что получается а при настройки .htaccess -в любом случае нужно экспериментировать побывать и смотреть что получается - захожим например сюда http://www.cy-pr.com/tools/header/ и смотрим код ответа веб сервар на запрос конкретной страницы. И соответственно сверяем коды и до тех пор пока не получим то что хотим.
например при запросе на данную страницы веб сервер этого сайта возвращает следующее значение:
200 код ))))
Код: выделить все
HTTP/1.0 200 OK
Date: Sun, 08 Jul 2012 08:20:28 GMT
Server: Apache
Content-Length: 27544
Connection: close
Content-Type: text/html


4) удачных экспериментов 8)
_
это был я)
Аватар пользователя
Alexx
Рядовой
 
Сообщений: 22
Зарегистрирован: Чт апр 12, 2012 3:01 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Называется: -"мы не знаем, сам поGoogleи"

Сообщение RotidE » Вт июл 10, 2012 3:04 am

Все написанное в предыдущем ответе можно было бы написать всего лишь несколькими фразами:
- Не знаю, ковыряйся сам.
Или же одним словом: -"погугли".

К сожалению поисковики не дают результата.

А я так надеялся на подсказку гуру. :cry:


Тем не менее, не оставлю не замеченным, благодарю за ссылку-подсказку на сайт "Проверка заголовков сервера - Проверка HTTP статусов".
Из каждой ситуации есть два выхода: первый, второй и третий.
Самый эффективный из них - четвертый.
Аватар пользователя
RotidE
 
Сообщений: 4
Зарегистрирован: Вс июн 24, 2012 11:32 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

меняем код ответа веб сервера 404 на код 410 с помощью .htac

Сообщение Alexx » Пн авг 27, 2012 12:34 pm

гугу давно в отпуске )))

"Погуглив" по http://htaccess.net.ru, обратно же на вскидку подверженной практикой получаются следующих два рабочих варианта:

1)
Вставляем в .htaccess следующее:
Код: выделить все
ErrorDocument 404 http://web-domen.com/111.txt   #111.txt  файл в корне - с надписью страница не найдена или даже просто пустой в данном примере не важно.
Redirect 410 /111.txt  #410 - Gone - ответ веб сервера.



Гугл хром выдает следующее:
Код: выделить все
Gone
The requested resource
/111.txt  is no longer available on this server and there is no forwarding address. Please remove all references to this resource.


2)
Если есть одинаковый элемент (- сочетание символов) в названии файлов- урлов ни где больше не встречается на других нормальных работающих файлах-урлах сайта то можно попробовать использовать регулярное выражение (шаблон), описывающее группу URL, нработающий пример для gif-фок:

Вставляем в .htaccess следующее:
Код: выделить все
RedirectMatch 410 /*1.gif


т.е. для всех файлов 1.gif, 45551.gif, wwwwwwwww11111.gif - т.е. при встрече с шаблоном "любые сиволы+1.gif" будет выдаваться 410 код -ответ веб-сервера:
Код: выделить все
Gone
The requested resource
/1.gif
 is no longer available on this server and there is no forwarding address. Please remove all references to this resource.
_
это был я)
Аватар пользователя
Alexx
Рядовой
 
Сообщений: 22
Зарегистрирован: Чт апр 12, 2012 3:01 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Благодарю за помощь!

Сообщение RotidE » Вт авг 28, 2012 3:20 am

Alexx,
Премного благодарен Вам, уважаемый!
Сейчас работает в таком виде:
Код: выделить все
Redirect 410 /blog/
Redirect 410 /dohod.html
Redirect 410 /chto_eto_takoe.html
Redirect 410 /obratnaya_svyaz.html
Redirect 410 /kak_i_chto_delat.html
Redirect 410 /menu_gde_vzyat_sredstva_na_vklad.html
...

Сработало не плохо, в поисковиках ошибочные страницы почистились.

Создание масок не пробовал, ибо не знал, как будет работать - не хотелось наломать дров.
Интересный вариант, пригодится, т.к. есть еще страницы с 404.
Из каждой ситуации есть два выхода: первый, второй и третий.
Самый эффективный из них - четвертый.
Аватар пользователя
RotidE
 
Сообщений: 4
Зарегистрирован: Вс июн 24, 2012 11:32 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Alexx » Пт авг 31, 2012 6:15 pm

да тут еще нужно четко себе отдавать отчет что если использовать первый вариант то в теории все не найденные страницы (с 404 ошибкой) будут удаляться из индекса сразу, ну а если сломалась смс, да и вообще любой глюк.. ошибка - и бац пол сайта удалена из индекса.. в общем я бы почистив что нужно затем затем комментировал бы эту инструкцию.. с 404 ошибкой безопасней по кране мере пара месяцев до удаления из индекс в запасе есть ))

еще есть 3 вариант с использованием http://htaccess.net.ru/doc/mod_rewrite/RewriteRule.php

но там нужно создавать правило - http://htaccess.net.ru/doc/mod_rewrite/RewriteRule.php, что не совсем просто )))

'gone|G' (делает URL «мёртвым»)
Этот флаг делает текущий URL «мертвым», т.е., немедленно отправляется HTTP ответ со статусом 410 (GONE). Используйте этот флаг для маркировки «мертвыми» не существующие более страницы.
_
это был я)
Аватар пользователя
Alexx
Рядовой
 
Сообщений: 22
Зарегистрирован: Чт апр 12, 2012 3:01 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0


Вернуться в Htaccess

Кто сейчас на форуме

Зарегистрированные пользователи: нет зарегистрированных пользователей

cron