M-A-X |
Отправлено: 18 декабря 2009 — 16:00
|
Advanced Member
Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2009
Откуда: Киев
Репутация: 10
|
yura3d пишет:И над ними добавляем строки:
CODE:if (defined('IS_404'))
header('HTTP/1.1 404 Not Found');
Лучше написать
CODE:header("Status: 404 Not Found");
Вдруг браузер/паук не держит HTTP 1.1
Еще 1 оптимизация.
Лучше было бы, если бы на главную страницу форума была ссылка без index.php Отредактировано администратором: yura3d, 18 декабря 2009 — 18:44 Заключайте код в теги [code][/code] |
|
|
|
Отправлено: 21 февраля 2010 — 17:28
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
vipraskrutka пишет:
CODE:User-agent: *
Disallow: /im/
Disallow: /postings.php
Disallow: /messenger.php
Disallow: /loginout.php
Disallow: /post.php
Disallow: /search.php
Disallow: /profile.php - чтоб изза спамеров не попасть под санкции
Disallow: /printpage.php - текстовую версию закрыл.
Disallow: /tools.php?action=members - тоже спамеров нах
Disallow: /tools.php?action=mail
Disallow: /loginout.php
Я бы добавил:
CODE:Disallow: /forum/rd.php*
Disallow: /forum/printfile.php?action=attach&*
Disallow: /forum/index.php?action=resetall
Disallow: /forum/forums.php?forum=*&show=*
Disallow: /forum/tools.php?action=mail&member=*
Disallow: /forum/post.php?action=new&poll=yes&forum=*
Disallow: /forum/post.php?action=new&forum=*
Disallow: /forum/*v=l*
Также заметил, что некоторые "умные" боты где-то раскапывают ссылки вида /forum/index.php?c=N, где N - несуществующий, чаще заведомо больший номер форума, а то и вообще что-то невообразимое, типа /forum/index.php?c=f11. Было бы неплохо отлавливать такие кривые номера форумов и по ним также выдавать искалкам 404. |
|
|
yura3d |
Отправлено: 21 февраля 2010 — 18:55
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
Zeg пишет:Также заметил, что некоторые "умные" боты где-то раскапывают ссылки вида /forum/index.php?c=N, где N - несуществующий, чаще заведомо больший номер форума, а то и вообще что-то невообразимое, типа /forum/index.php?c=f11. Было бы неплохо отлавливать такие кривые номера форумов и по ним также выдавать искалкам 404.
Этот вопрос с номерами категорий можно решить таким образом. Открываем файл index.php, находим строку:
CODE:$subforums = array();
и под ней добавляем строку:
Далее в этом же файле ищем строку:
CODE: $fm->_GetModerators($id, $allforums);
и под ней вставляем строки:
CODE: if ($forum['catid'] != $lastcat)
$cats[] = $forum['catid'];
Затем находим строку:
CODE:// СКРЫТЫЙ РЕЖИМ ПРЕБЫВАНИЯ НА ФОРУМЕ //
и над ней вставляем строки:
CODE:if (!in_array($fm->input['c'], $cats)) {
define('IS_404', 1);
$fm->_Message('404', 'No category');
}
На этом почти всё, осталось только проделать некоторые изменения в файле include/fm.class.php, о которых я говорил ранее здесь. Теперь при запросе несуществующей категории сервером будет отдаваться заголовок 404. К слову, приведённой по ссылке выше инструкцией можно воспользоваться, чтобы сделать по аналогии возврат заголовка 404 также для неправильных номеров разделов, тем и т.п. |
|
|
|
Отправлено: 22 февраля 2010 — 20:36
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
yura3d пишет:
CODE:if (!in_array($fm->input['c'], $cats)) {
define('IS_404', 1);
$fm->_Message('404', 'No category');
}
Тут косяк. Потому что, при обращении index.php без указания переменной "с" получаем 404.
(Добавление)
Может надо типа того:
CODE:if (isset($c)) {
if (!in_array($fm->input['c'], $cats)) {
define('IS_404', 1);
$fm->_Message('404', 'No category');
}
}
(Отредактировано автором: 22 февраля 2010 — 20:38) |
|
|
yura3d |
Отправлено: 27 февраля 2010 — 21:26
|
ExBB Team ExBB Developer ExBB Mods Author
Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009
Откуда: Минск, Беларусь
Репутация: 353
|
vipraskrutka пишет:+1, совсем хреново, когда поисковикам выдается куча такого мусора а не контента, такие дела могут быть расценены спамом и санкции вполне можно словить...
Согласен, хотя ни разу ещё не видел, чтобы сайт был забанен или ловил какие-либо санкции из-за этого (в качестве примера можно взять тот же форум ТвойВеб). Однако есть и другие недостатки, например, пользователям, которые пожелают просмотреть сохранённую в кеше поисковика страницу (а это удобно уже только потому, что искомые слова подсвечиваются), будет сложно ориентироваться в этой мешанине из текстов сообщений. В принципе, нагрузка от индексации форума поисковыми ботами не такая уж и существенная, даже чат может нагружать сервер более ощутимо. |
|
|
|
Отправлено: 13 февраля 2011 — 19:23
|
Покинул форум
Сообщений всего: 0
Дата рег-ции: N/A
Репутация: 0
|
Давно тема не поднималась, но поводы есть. Нужно доделать полноценную отдачу 404-х и добавить отдачу 403-х заголовков.
404 нужно выдавать также и тогда, когда запрошенная тема не существует (указан не верный номер для topic):
Цитата:Эта тема не существует!
Цитата:Раздел форума, с указанным ID, не найден!
Исправление (Отобразить)
Открываем файл topic.php и вставляем строку
CODE:define('IS_404', 1);
после строки
CODE:if (!isset($allforums[$forum_id])) {
и еще раз после строки
CODE:if (!file_exists('forum'.$forum_id.'/'.$topic_id.'-thd.php')) {
Потом открываем forums.php и вставляем строку
CODE:define('IS_404', 1);
после строки
CODE:if (($forum_id = $fm->_Intval('forum')) == 0 || !isset($allforums[$forum_id])) {
Затем открываем printpage.php и вставляем строку
CODE:define('IS_404', 1);
после строки
CODE:if (($topic_id = $fm->_Intval('topic')) === 0 || ($forum_id = $fm->_Intval('forum')) === 0 || !isset($allforums[$forum_id])) {
и еще раз после строки
CODE:if (!isset($list[$topic_id]) || !file_exists('forum'.$forum_id.'/'.$topic_id.'-thd.php')) {
403 необходимо выдавать везде, где закрыт доступ пользователю (и боту).(Отредактировано автором: 13 февраля 2011 — 20:06) |
|
|
|