Как добавить атрибут nofollow к внешним ссылкам для уже созданных постов.

Приветствую!

Столкнулся с небольшой проблемой. Вдруг появилась необходимость проставить атрибут nofollow ко всем внешним ссылкам в уже созданных постах, но к сожалению, изменение параметра в конфиге ничего не дало и атрибут присваивается только в момент публикации поста. На сайте уже более 1000 постов и руками все пересохранить — та еще работенка.

Буду признателен за любую помощь, спасибо.

11 комментариев

avatar
Это вот из той же серии livestreet.ru/blog/15645.html
avatar
Да, читал, спасибо. Но покупать ненужный модуль только ради функции пересохранения топиков как-то не айс.
avatar
Как вариант, сделайте js для добавления нужного атрибута.
avatar
Я бы с радостью, но навыков не хватает
avatar
Ну и какой толк будет от этого атрибута если он будет добавлятся javascript-ом?
SAPE — его не увидит, rookie — тоже. Поисковики — врят-ли.
avatar
Может каким-нибудь «хитрым» SQL запросом в базу. Типа поменять все, что начинается с http://*** (за исключением вашсайт***) на nofollow…
avatar
Плюнул на автоматику и сделал все руками, ушло всего-лишь три часа времени :)
avatar
не успел вам помочь.
напрямую через sql нельзя, так как у мускула нет REGEX REPLACE
Можно перебрать все топики, пропустив их текст через регулярку:

preg_replace('#<a([^<]*)href=["\']http://(?![a-z0-9.-]*'.quotemeta($_SERVER['HTTP_HOST']).'\/?)([^"\']*)["\']([^<]*)>(.*)</a>#ismU','<a$1href="http://$2"$3 rel="nofollow" target="_blank">$4</a>', $sText);
avatar
Спасибо! Не я первый, кто столкнулся с этой проблемой и не я последний, ваш метод наверняка поможет кому-нибудь сэкономить немного времени :)
avatar
как правильно это делается? можна примеры показать?
avatar
а если на php скрипт?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.