Вобщем в свете предыдущего поста я продолжил причесывать свой новый сайт, а учитывая что это вики то тут вполный рост встает вопрос с поисковиками и robots.txt, и вот почему:
Этож wikiблять!!! тут у каждой страницы хуеватьма ревизий, и ссылки на каждую из них, куча перекресных ссылок итд, тоесть невьебенная такая куча мала как из миксера и все это индексируется поисковиками. Да я ебал как они в этом всем разбираюца😊 но тем не менее стараюца, но, не всегда правильно, поэтому лучше помочь, и вики помогают, говорят nofollow в meta там где индексировать не нада, но лучше помочь еще вдобавок - дав пинка в нужном направлении, тоесть запретив в robots.txt индексацию того что им не нада, дабы они не тратили лишнее время лазя по nofollow линкам, впринципе тут все просто.
Но блять я случайно пока ковырял модули вики набрел на один из них, точнее два, герерирующих sitemap, мне стало интересно что ето такое и я прочитал - оказывается еще один новомодный инструмент воздействия на роботов, ну и я решил - а чеп не заюзать и его до кучи - хуже то не будет... КАК Я БЛЯТЬ ОШИБАЛСЯ!!! 😊
но все по порядку - я радостно докинул модуль в вики - проверил генерит ли она етот sitemap - генерит, и, уже замахнулся вписать его в robots.txt но по не знанию как это сделать - обратился к документации, а там блять написано что относительную сцылку низзя нихуя - тока полную с именем домена, а у меня хуеватьма доменов и поддоменов - вот такой вот неожиданный ебаныйврот. кто эту хуйню придумал и зачем бошку ампутировать нада, нах она ему.
Но, тем не менее взялся так взялся - нада сделать же, ну выход очевиден - генерировать robots.txt динамически при запросе и подставлять там нужный домен - гавновапрос!!!
#!/usr/bin/perl. $| = 1;. $server_name=$ENV{'SERVER_NAME'} || "megaprovider.ru"; $req_scheme=$ENV{'REQUEST_SCHEME'} || "http"; print "Content-type: text/plain\n\n"; print "Sitemap: $req_scheme://$server_name/sitemap.xml\n\n"; print <<'EOF'; User-agent: *. Disallow: /?action=admin Disallow: /?action=edit Disallow: /?action=new Disallow: /?action=history Disallow: /?action=browse;diff= Disallow: /?action=rc Disallow: /?action=rss Disallow: /?search= Disallow: /?RecentChanges Disallow: /?Comments_on_ Disallow: /?action=password Disallow: /?search= Crawl-delay: 1 EOF
условие по поводу servername на случай если вдруг кто придет сильно кривой и/или по http 1.0 без host хедера и тогда SERVER_NAME может быть не известно, но лучше туда всетаки выплюнуть чтото вменяемое чем http:///sitemap.xml, поэтому если SERVER_NAME пустое то подставляем туда один из доменов.
У меня Nginx, как этот скрипт к нему привернуть здесь почтишто в самом конце, к другим серверами готовых решений у меня нет но думаю у большинства должен быть какой то путь сделать аналогично.
Вобщем влепил я скрипт, проверил - работает - заебись, сижу смотрю че там поисковики творят, запрашивают ли мой sitemap али нет...
Гугл и яндекс запросили, и скачали, остальные кравлеры и спайдеры воздержались и не запрашивали его, а дальше началась хуйня:
по какой то причине, хуяндекс начал запрашивать урлы каких ваще быть не может но шаблонно совпадающих с теми что есть, тоесть к примеру вот эта страница имеет адрес megaprovider.ru/?2017-12-13_Web-Blog, хуяндекс же запрашивал megaprovider.ru/0/?2017-12-13_Web-Blog, и так через рас иногда через 2, потом тоже самое но правильно, ну и тд.
это меня озадачило - я начал капать глубже и все проверять, натравил несколько валидаторов, в том числе и самого яндекса - все сказали все заебись у тебя с sitemap и robots.txt, я в непонятках ваще, перерыл всю хуню котороую авторы этого sitemap гордо именуют стандартом - нихуя не нашол, даже зацепки никакой, в гугле тоже тишина - ниче подобного ниукого небыло, я блять уже все проверил, и кодировку, и файл, ПОБАЙТНО в хекс редакторе прочитал на соотвествие кодироке, а там блять UTF!!! ну хедер в хмлине немного староват был - поправил, вобщем БЛЯТЬ!!! - ВСЕ НИШТЯК и все по фэншую, тоесть по этому говностандарту. У меня схема frontend->backend из двух серверов - уже на какой то чудесный глюк в них начал думать, но, вовремя попробовал убрать этот sitemap - и все стало заебись через день-два, перестали они лазать по таким ссылкам.
Думал думал, положил хуй на это стандарт, зарылся в гугель - и не нашол нигде упоминания чтоп у кого то было нечто подобное зато нашол тьму страшилок типа низзя его класть не вкорень ато все что выше каюк - не проиндексируется или sitemap не заюзается, на другой домен тоже низзя ну итд, но ниче по делу- ваще тупик!!! И тут я начал искать другое - ну не могуж я блять быть первый кто генерит sitemap динамически и не в файл на диске а сразу по запросу выплевывая в клиента - ну да - дохуя всяких плагинов ко всяким вордпрессам и прочей хрени, генерят динамически так же и robots.txt и sitemap и все хуйню, но вот что характерно - нигде я не нашол чтоп ссылка на sitemap была типа динамической, У всег или сразу генерируется по запросу /sitemap.xml или какойнить реврайт чтоп при запросе sitemap.xml по факту запрос шол куда нада. А у меня она вида site/?action=sitemap, ну я ее так и отдавал в robots.txt, и думаю - ну неужели в этом херня - извратился и переделал - чтоп была доступна сразу по site/sitemap.xml.
Маловато еще времени прошло но вроде гугл с яндексом угомонились с этими кривыми ссылками, сижу жду дальше чтоп уж наверняка😊 И главное ведь не написано нигде.
Так что люди - не ставьте динамические ссылки на sitemap.xml.