Q: Сервер отдает 403 роботу яндекса.

12
S
На сайте с 26.12.2006
Offline
80
2400

Приветствую Вас.

Помогите пожалуйста решить следующую проблемму:

При попытке яндексом проиндексировать сайт, сервер выдает 403ю ошибку.


213.180.207.25 - - [13/Mar/2007:09:51:30 +0300] "GET /robots.txt HTTP/1.1" 200 110 "-" "Yandex/1.01.001 (compatible; Win16; I)" "-"
213.180.207.25 - - [13/Mar/2007:09:51:31 +0300] "GET / HTTP/1.1" 403 5 "-" "Yandex/1.01.001 (compatible; Win16; I)" "-"

адрес сайта: www.petanque.ru

сайт построен на cms e107.


agv01:$ cat .htaccess
RewriteEngine on
Options -Indexes
RewriteBase /
RewriteRule ^/$ /news.php?cat.1
RewriteRule ^$ /news.php?cat.1
RewriteRule ^index.php$ /news.php?cat.1


agv01:$ cat robots.txt
User-agent: *
Disallow: /admin/
Disallow: /handlers/
Disallow: /files/cache/
Disallow: /files/public/avatars/

подскажите пожалуйста, из-за чего это может происходить?

спасибо.

ostmaster
На сайте с 01.09.2002
Offline
222
#1

RewriteRule (все) написаны некорректно.

Первое - бессмысленно Запрос, соответствующий регэкспу "^/$" (писать, кстати, надо так: "^\/$") трудно себе представить. Разве что http://www.petanque.ru//, но второй слеш апач отфильтрует на входе.

Второе надо писать так: RewriteRule ^$ news.php?cat.1 (перед news слеш не нужен), но оно тоже бессмысленно, поскольку на пустой запрос должен выдаваться индекс и проще написать: "DirectoryIndex news.php?cat.1".

В последнем - слеш перед news тоже не нужен. И вообще, пропишите правильный DirectoryIndex или сделайте с news.php симлинк на index.php и будет вам счастье.

Может быть ;)

Или напишите такой index.php: "<?php virtual("news.php?cat.1"); ?>"

Тема скорее для администрирования. Там бы знающие люди ответили ;)


Тестирование мобильных приложений и сайтов (/ru/forum/1032925) https://www.facebook.com/ostmaster (https://www.facebook.com/ostmaster)
S
На сайте с 26.12.2006
Offline
80
#2

ostmaster, спасибо.

прописал DirectoryIndex как Вы советовали, ждем утра... ибо робот каждое утро заглядывает :)

а вот это: <?php virtual("news.php?cat.1"); ?> неполучилось, т.к. инклудится просто news.php (параметр cat.1 не воспринимается)

S
На сайте с 26.12.2006
Offline
80
#3

213.180.207.25 - - [14/Mar/2007:11:08:05 +0300] "GET /robots.txt HTTP/1.1" 200 110 "-" "Yandex/1.01.001 (compatible; Win16; I)" "-"
213.180.207.25 - - [14/Mar/2007:11:08:06 +0300] "GET / HTTP/1.1" 403 5 "-" "Yandex/1.01.001 (compatible; Win16; I)" "-"

Проблемма осталась, есть ещё какие нибудь варианты?

T.R.O.N
На сайте с 18.05.2004
Offline
314
#4

saiprex,

Воще у тебя сервак работает просто гениально.

На GET запрос он не отдает Content-Type

Вот запрос

GET / HTTP/1.1

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Host: www.petanque.ru

If-Modified-Since: Mon, 12 Feb 2007 10:04:41 GMT

Accept: text/html

Accept-Language: ru

Accept-Charset: WINDOWS-1251;q=1.0

Connection: close

Вот ответ

HTTP/1.1 200 OK

Date: Wed, 14 Mar 2007 09:21:03 GMT

Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-18 mod_perl/1.29

X-Powered-By: PHP/4.3.10-18

Cache-Control: must-revalidate

ETag: 2996dd6074a7af7dc00a632c424a49e0

Кроме этого, вместо ошибки 404, зачемто сделана 302 с редиректом на морду.

Если и остальное так настроено, то возможно, это совсем не 403 ошибка, а может 500 или т.п.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
Lupus
На сайте с 02.11.2002
Offline
241
#5
saiprex:
Проблемма осталась, есть ещё какие нибудь варианты?

Надеюсь, кривые рулесы mod_rewrite вы убрать не забыли?

Кстати, последнее можно оставить, при условии правильного написания и наличия хоть какого index.php.

И еще. Если у вас AllowOverride не разрешает переписывать настройки, то в .htaccess можно хоть "Войну и мир" цитировать, это ни на что не повлияет.

There are two types of people in this world: 1. Those who can extrapolate from incomplete data.
T.R.O.N
На сайте с 18.05.2004
Offline
314
#6

Lupus, ostmaster,

Я не силен в апачи, как и пхп (очень их не люблю. предпочитаю win), но здесь проблема на лицо другая. Ведь запросы экслорера и ботов проходят нормально. Глюк именно при запросах робота яши.

Lupus
На сайте с 02.11.2002
Offline
241
#7
T.R.O.N:
Глюк именно при запросах робота яши.

Это вражеский агент прокрался к конфигам и вставил что-то вроде "Deny from 213.0.0.0/8" :D

Вообще, особенность я-робота в том, что он не идет по редиректам. Если у него стоит обработка 403 с редиректом, то браузер покажет все нормально. А там, похоже, с errorpage наворочено.

На сайте с 18.10.2006
Offline
12
#8
ostmaster:
RewriteRule (все) написаны некорректно.

Бессмысленно не значит некорректно.

По поводу Ваших замечаний: отсылали их автору данного документа?

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

To rewrite the Homepage of a site according to the "User-Agent:'' header of the request, you can use the following:

RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^/$ /homepage.max.html [L]

RewriteCond %{HTTP_USER_AGENT} ^Lynx.*
RewriteRule ^/$ /homepage.min.html [L]

RewriteRule ^/$ /homepage.std.html [L]
T.R.O.N
На сайте с 18.05.2004
Offline
314
#9
Lupus:
Если у него стоит обработка 403 с редиректом, то браузер покажет все нормально. А там, похоже, с errorpage наворочено.

проверил снифером, все ок. 403 не отается. Поэтому меня вопрос и заинтересовал.

Lupus
На сайте с 02.11.2002
Offline
241
#10
NA Кролик-Зануда:
Бессмысленно не значит некорректно.

Некорректно, значит некорректно. Если бы вы напрягли себя внимательным рассмотрением этих рулесов, то заметили бы, что: во-первых, не экранирован слеш в регэкспе первого правила, во-вторых, слеш в перенаправлении действительно излишен.

Правила не ошибочны, иначе было бы 500, а именно некорректны. И ваши молитвы на волонтерский док этого факта никак не меняет.

NA Кролик-Зануда:
По поводу Ваших замечаний: отсылали их автору данного документа?

И чем ваше выступление помогает решить проблему спросившего? Пофлудить зашли?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий