Индексация изображений Яндексом

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Индексация изображений Яндексом

Сообщение romeo_piter »

Да идея то хорошая, надо с глюками разобраться.
Меньше всего я понимаю, почему в логах апача ошибка и как её убрать.
Хостер тоже не знает и помочь не может.


Второе, после того как я написал про отсутствие индексации, залез на яндекс, там было 30К вложений.
Всего на форуме 6К внешних вложений и 45К аттачей, соответственно у большинства аттачей есть превью. Т.е. суммарно имеем примерно 90К изображений.
Большая часть проиндексированных - превью.
Что примечательно, у проиндексированных превью не были проиндексированы полноразмеры.

Захожу сегодня, снова 6К картинок. Т.е. только внешние.
Сдается мне, Яша - муд*ак?
Картинки доступны ПСам 100%, в индексе гугла они есть.


Люди, помогите разобраться с ошибками апача.
У кого пшп стоит как фаст цги и имеется данный хак?

Добавлено спустя 2 часа 19 минут 10 секунд:
Получил ответ от суппорта яндекса, что с ИЗО всё гут, мол ждите, а то что картинки то входят в индекс то нет, и то что уже 4 месяца прошло - это мол нормально.

Что-то глубоко крив механизм индексации яндекс картинок.
ostridm
phpBB 2.0.7
Сообщения: 552
Стаж: 14 лет 5 месяцев
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Re: Индексация изображений Яндексом

Сообщение ostridm »

может в .htaccess поглядим?
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Индексация изображений Яндексом

Сообщение Shredder »

romeo_piter писал(а):Получил ответ от суппорта яндекса, что с ИЗО всё гут, мол ждите, а то что картинки то входят в индекс то нет, и то что уже 4 месяца прошло - это мол нормально.

Что-то глубоко крив механизм индексации яндекс картинок.
А может, дело вовсе не в моде? Была проблема с индексацией тем: http://www.phpbb-work.ru/vred-podpisey- ... h-t27.html
Сначала тоже думал на форум. А оказалось, что дело в кривом яндексе, как выяснили в итоге. По крайней мере, я склонился именно к этому варианту)
ostridm
phpBB 2.0.7
Сообщения: 552
Стаж: 14 лет 5 месяцев
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Re: Индексация изображений Яндексом

Сообщение ostridm »

яндекс не кривой, просто часть картинок под семейным фильтром.... выключи
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Индексация изображений Яндексом

Сообщение romeo_piter »

ostridm писал(а):выключи
У меня он и не был включен.
Тем более форум 0+
Shredder писал(а):А оказалось, что дело в кривом яндексе, как выяснили в итоге.
Ну то что он кривой в плане индексирования и ранжирования ИЗО они сами не отрицают. Особенно в сравнении с гуголом.
С индексацией тем у меня проблем нет, всё очень быстро и хорошо съедается.

Кстати проверил, почти все ИЗО в гугле, причем в отличие от яндекса, там где есть миниатюра и полное изображение, гугол выбирает полное изображение, что намного логичнее.

Добавлено спустя 2 минуты 33 секунды:
ostridm писал(а):может в .htaccess поглядим?
но проблем:

Код: Выделить всё

RewriteEngine On
RewriteCond %{HTTP_HOST} ^forum.XXX.ru
RewriteRule (.*) http://www.forum.XXX.ru/$1 [R=301,L]

<Files "*.html">
Order allow,deny
Deny from all
</Files>

RewriteRule ^thumbpics/(.*)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1&t=1 [NC]
RewriteRule ^pics/(.*)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1&mode=view [NC]
RewriteRule ^smallpics/(.*)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1 [NC]
RewriteRule ^fpii/(.*)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1 [NC]
Добавлено спустя 1 минуту 14 секунд:
Да и с точки зрения яндекса, у них проблемы не с доступом к изображениям, а с неадекватностью механизма, хотя они это пытаются отрицать в переписке )))

Добавлено спустя 2 минуты 20 секунд:
htacess немного изменен в сравнении с хаком, но это никак не влияет на работоспособность, просто изменяет вид ссылки на более презентабельный.
Аватара пользователя
Alexander2012
phpBB 1.2.1
Сообщения: 20
Стаж: 13 лет 11 месяцев
Откуда: Россия, Сибирь
Благодарил (а): 6 раз

Re: Индексация изображений Яндексом

Сообщение Alexander2012 »

romeo_piter писал(а):htacess немного изменен в сравнении с хаком, но это никак не влияет на работоспособность, просто изменяет вид ссылки на более презентабельный.
А как теперь у Вас выглядят ссылки?
Последний раз редактировалось Alexander2012 28.01.2014 12:14, всего редактировалось 1 раз.
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Индексация изображений Яндексом

Сообщение romeo_piter »

Аватара пользователя
Alexander2012
phpBB 1.2.1
Сообщения: 20
Стаж: 13 лет 11 месяцев
Откуда: Россия, Сибирь
Благодарил (а): 6 раз

Re: Индексация изображений Яндексом

Сообщение Alexander2012 »

ostridm писал(а):
Alexander2012 писал(а): Решил вернуться к поднятому вопросу, потому что никто не обратил на него внимание. Наверное, я просто не совсем понятно объяснил. Поэтому, исключительно для наглядности, приведу одну ссылку forum.prokuhnyu.ru/viewtopic.php?f=22&t=267#p1549, где видно, что картинка не отображается.

Обратите внимание: в тексте комментария к файлу есть знак "/". Из-за него имя файла получается некорректным и в результате не находится.

Может имеет смысл в данной доработке сделать так, чтоб знак "/" в имени файла заменялся, например, на такой знак "_"?
в общем - прпробуйте поменять

Код: Выделить всё

$fn = rawurlencode($fn);
либо на

Код: Выделить всё

$fn = rawurlencode(utf8_str_replace('/','-',$fn));
либо на

Код: Выделить всё

$fn = str_replace('%2F','-',rawurlencode($fn));
ни то ни другое я не проверял поэтому - острожнее
К сожалению, ни один из вариантов не заработал. Неужели ни у кого пользователи форума не оставляют комментарии к картинкам, в которых содержится знак "/"? Ведь в таком случае картинка не отображается вообще.

Добавлено спустя 24 минуты 28 секунд:
romeo_piter писал(а):http://www.xxx.ru/pics/50358.jpg
Т.е. вы добились того, чтоб имя файла содержало только физическое имя файла (без добавления названия темы и комментария) только путем замены в .htaccess этих строк:

Код: Выделить всё

RewriteRule ^fpit/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ forum/download/file.php?id=$1&t=1 [NC]
RewriteRule ^fpin/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ forum/download/file.php?id=$1&mode=view [NC]
RewriteRule ^fpid/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ forum/download/file.php?id=$1 [NC]
RewriteRule ^fpii/.*_(\d+)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ forum/download/file.php?id=$1 [NC]
на эти строки:

Код: Выделить всё

RewriteRule ^thumbpics/(.*)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1&t=1 [NC]
RewriteRule ^pics/(.*)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1&mode=view [NC]
RewriteRule ^smallpics/(.*)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1 [NC]
RewriteRule ^fpii/(.*)\.(gif|jpg|jpeg|bmp|png|tiff|tif|tga)$ download/file.php?id=$1 [NC]
Я правильно понял?
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Индексация изображений Яндексом

Сообщение romeo_piter »

Точно я уже не помню, надо ковырять, скорее всего ещё где-то что-нить правил, там ещё куча правок для alt и title.

Выложу свой вариант если яндекс нормально отработает эту схему.
Пока кроме вида ссылок и прочего оформительского извращения мне всё не нравится ))
Anvar
Former team member
Сообщения: 1964
Стаж: 16 лет 5 месяцев
Благодарил (а): 67 раз
Поблагодарили: 800 раз

Патч : Индексация изображений Яндексом

Сообщение Anvar »

ostridm писал(а):в общем - прпробуйте поменять

Код: Выделить всё

$fn = rawurlencode($fn);
ни то ни другое я не проверял поэтому - острожнее
Лучше конкретно почистить всякий мусор.

Код: Выделить всё

						$find = array('---', '--', '?', '#', '%', '?', '^', '.', '/', ' ', '_', ')', '(', '[', ']', ':', ',', '{', '}');
						$fn = str_replace($find, '_', $fn);
						$fn = str_replace('_-_', '-', $fn);
						$fn = rawurlencode($fn);
Или лучше:
Функция с транслитом(Функция найдена в топике simple seo mod) 
Забываем про верхние правки в этом топике для очистки символов..
Заменяем

Код: Выделить всё

$fn = rawurlencode($fn);
На

Код: Выделить всё

$fn = replace_title_img($fn);
Находим снизу ?>
И вставляем перед

Код: Выделить всё

function replace_title_img($str)
{
	$tr = array(
		"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
		"Д"=>"d","Е"=>"e","Ё"=>"yo","Ж"=>"zh","З"=>"z","И"=>"i",
		"Й"=>"j","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
		"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
		"У"=>"u","Ф"=>"f","Х"=>"x","Ц"=>"c","Ч"=>"ch",
		"Ш"=>"sh","Щ"=>"shh","Ъ"=>"j","Ы"=>"y","Ь"=>"",
		"Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
		"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ё"=>"yo","ж"=>"zh",
		"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
		"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
		"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
		"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"j",
		"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya", 
		" "=> "-", "."=> "", "І"=> "i",
		"і"=> "i", "&#1186;"=> "n", "&#1187;"=> "n", 
		"&#1198;"=> "u", "&#1199;"=> "u", "&#1178;"=> "q", 
		"&#1179;"=> "q", "&#1200;"=> "u",
		"&#1201;"=> "u", "&#1170;"=> "g", "&#1171;"=> "g", 
		"&#1256;"=> "o", "&#1257;"=> "o", "&#1240;"=> "a", 
		"&#1241;"=> "a"
	);
	// Убираю тире, дефисы внутри строки
	$urlstr = str_replace('–'," ",$str);
	$urlstr = str_replace('-'," ",$urlstr); 
	$urlstr = str_replace('—'," ",$urlstr);
	// Убираю лишние пробелы внутри строки
	$urlstr = preg_replace('/\s+/',' ',$urlstr);
	if (preg_match('/[^A-Za-z0-9_\-]/', $urlstr))
	{
		$urlstr = strtr($urlstr,$tr);
		$urlstr = preg_replace('/[^A-Za-z0-9_\-]/', '', $urlstr);
		$urlstr = strtolower($urlstr);
		return $urlstr;
	}
	else
	{
		return strtolower($str);
	}
}

Ещё {$fn}тут пробел_{$attachment['attach_id']}.{$attachment['extension']}
пробел не нужен.
Последний раз редактировалось Anvar 18.02.2014 19:32, всего редактировалось 1 раз.
Не пишите вопросы лично, если можете задать их на форуме!
Спецзаказы не интересуют!
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Индексация изображений Яндексом

Сообщение romeo_piter »

Ещё один геморок однаружил,
этот хак Индексация изображений Яндексом
не работает в search.php
как заставить работать?
Anvar
Former team member
Сообщения: 1964
Стаж: 16 лет 5 месяцев
Благодарил (а): 67 раз
Поблагодарили: 800 раз

Re: Индексация изображений Яндексом

Сообщение Anvar »

Действительно, косяк, решим.
Не пишите вопросы лично, если можете задать их на форуме!
Спецзаказы не интересуют!
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 5 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: Индексация изображений Яндексом

Сообщение romeo_piter »

Я пробовал, но моих знаний не хватает, а схема "по аналогии" тут не фурыкает. )
Anvar
Former team member
Сообщения: 1964
Стаж: 16 лет 5 месяцев
Благодарил (а): 67 раз
Поблагодарили: 800 раз

Re: Индексация изображений Яндексом

Сообщение Anvar »

Так то всё работает, просто ссылки прежние. В выдачу они всё равно не пойдут, так как выводятся только при использовании внутреннего поиска. А можно ли считать это проблемой?

Решение №1 

Код: Выделить всё

					if (isset($topic_data) && isset($topic_data['topic_title']))
					{
						$fn = $topic_data['topic_title'] . ' - ' . ('' === $attachment['attach_comment'] ? 
							utf8_str_replace('.' . $attachment['extension'], '', htmlspecialchars_decode($attachment['real_filename'])) : $attachment['attach_comment'] );
						$block_array['DOWNLOAD_NAME'] = utf8_basename($fn);
						$fn = rawurlencode($fn);
						$inline_link 	= "/fpid/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
						$download_link 	= "/fpin/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
					}
вставляем после

Код: Выделить всё


					else
					{
						$fn = ($attachment['attach_comment'] == '')? 
							utf8_str_replace('.' . $attachment['extension'], '', htmlspecialchars_decode($attachment['real_filename'])) : $attachment['attach_comment'] ;
						$block_array['DOWNLOAD_NAME'] = utf8_basename($fn);
						$fn = rawurlencode($fn);
						$inline_link 	= "/fpid/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
						$download_link 	= "/fpin/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
					}

Далее

Код: Выделить всё


					if (isset($topic_data) && isset($topic_data['topic_title']))
					{
						$fn = $topic_data['topic_title'] . ' - ' . ('' === $attachment['attach_comment'] ? 
							utf8_str_replace('.' . $attachment['extension'], '', htmlspecialchars_decode($attachment['real_filename'])) : $attachment['attach_comment'] );
						$block_array['DOWNLOAD_NAME'] = utf8_basename($fn);
						$fn = rawurlencode($fn);
						
						$thumbnail_link = "/fpit/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
						$download_link 	= "/fpin/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
					}
после добавляем

Код: Выделить всё

					else
					{
						$fn = ($attachment['attach_comment'] == '') ? 
							utf8_str_replace('.' . $attachment['extension'], '', htmlspecialchars_decode($attachment['real_filename'])) : $attachment['attach_comment'];
						$block_array['DOWNLOAD_NAME'] = utf8_basename($fn);
						$fn = rawurlencode($fn);
						
						$thumbnail_link = "/fpit/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
						$download_link 	= "/fpin/{$fn} _{$attachment['attach_id']}.{$attachment['extension']}";
					}

Лучше так:
Решение №2 
search.php

FIND

Код: Выделить всё

$forum_id = $row['forum_id'];
BEFORE ADD

Код: Выделить всё

			$topic_data = $row;
не проверял, но думаю должны работать оба варианта

И желательно применить это: http://www.phpbbguru.net/community/post ... 6#pr424855

надо теперь собирать воедино всё.
Не пишите вопросы лично, если можете задать их на форуме!
Спецзаказы не интересуют!
ostridm
phpBB 2.0.7
Сообщения: 552
Стаж: 14 лет 5 месяцев
Благодарил (а): 20 раз
Поблагодарили: 62 раза

Re: Индексация изображений Яндексом

Сообщение ostridm »

мне вот начинкает казаться что имя файла картинки не особо важнО.

Вернуться в «Поддержка phpBB 3.0.х»