Настройки сервера

IQ
На сайте с 18.02.2006
Offline
18
ICQ
860

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

Ситуация следующая:

есть сайт http://site/ с главной страницей http://site/index.html все страницы сайта чистый HTML с незначительным использованием PHP для отправки ссылки другу и сообщения админу

при запросе например http://site/?12345 сервер без редиректа отдает главную страницу

из того что я узнал, выход из этой проблемы думается в правильной настройке сервера и обработке 404 кода через файл .htaccess путем создания отдельной страницы под обработку ошибки, если я правильно понимаю, то остается вопрос - как ее сделать?

Коля Дубр
На сайте с 02.03.2005
Offline
153
#1

Ну, если страницы идут именно вида /?1234 - делаем так:

1. Заставляем индексный файл обрабатываться из PHP (переименовываем в index.php или добавляем нужный хандлер)

2. В индексном файле делаем проверку, какую душе угодно, например:


if (!preg_match("/^\/index\.php|\/$/", $_SERVER['REQUEST_URI'])) {
header("HTTP/1.1 404 Not Found");
echo "Вы нетуда попали"; // HTML-код сообщения об ошибке
} else {
echo "Привет"; //Отдаем нормальную страницу
}

Что тут нужно понимать: в $_SERVER['REQUEST_URI'] лежит строка с запрошенным у сервера документом. На регулярных выражениях мы ее проверяем на допустимость. В данном случае мы отдаем 404, если только файл не запросили как '/index.php' или как '/'. Т.е. запрос вида 'index.php?var=val' будет считаться некорректным и получит 404.

Это самый простой вариант.

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
IQ
На сайте с 18.02.2006
Offline
18
ICQ
#2

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

и ещё все-таки получается главную страницу поисковик будет видеть как динамическую, быть может есть вариант как сохранить ее статичной в виде нынешнего index.html

K
На сайте с 31.01.2001
Offline
737
#3

Не углубляясь в технические детали, надо обеспечить отсутствие дублей и не выдавать код 200 на несуществующие адреса. Можно 404 или 301. 404 по-моему, более честно.

Иначе у вас будут плодиться дубли и куча страниц со странными адресами. Недоброжелатели могут в addurl загнать и страничку с непотребным адресом, например http://site/?nu-a-figli и она попадет в поисковик :).

Выделенные полосы в Москве (http://www.probkovorot.info) привели к снижению скорости до 23%.
IQ
На сайте с 18.02.2006
Offline
18
ICQ
#4

2Kost согласен, что нужно решать задачу в этом направлении, кстати вот очень показательные примеры, не в обиду нашим поисковикам, но что есть, то есть,

http://www.google.ru/?это=КРУТО

http://www.rambler.ru/?это=РАМА

http://www.yandex.ru/?это=ЯША

судя по всему, только гугля решает эту проблему и не только у других сайтов но и у себя

и все-таки, есть ли вариант (видимо есть у гугля главная http://www.google.ru/index.html) и какой вариант лучше, "обеспечить отсутствие дублей и не выдавать код 200 на несуществующие адреса" при сохранении главной страницы в ее статичном виде index.html

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