удаление заданных URL сайта из контента - PullRequest
0 голосов
/ 21 мая 2009

У меня есть блог на WordPress и несколько авторов. Я хочу автоматически удалить URL-адреса веб-сайтов из содержимого моего блога. Например, я не хочу, чтобы в сообщении содержались какие-либо URL-адреса myspace, не только myspace.com чем myspace.com/whatever или myspace.com/faq.html.

Возможно ли это сделать с помощью некоторого php-кода или добавить какой-либо код в файл .htaccess?

Спасибо.

1 Ответ

4 голосов
/ 21 мая 2009

.htaccess здесь не поможет.

Вы должны быть в состоянии собрать довольно простой плагин, что-то вроде этого:

add_filter('the_content', 'myspace_url_filter', 999);

function myspace_url_filter($content) {
  return preg_replace('/(<a[^>]href=["'])[^"']+myspace.com[^"']+["']/', '\1#"', $content);
}

Обратите внимание, что это ни в коем случае не идеальное регулярное выражение; его можно легко обойти, заменив доменное имя myspace на myspace IP (удачи в отслеживании каждого общедоступного IP-адреса, который они используют ...), общие методы XSS, использование любой службы перенаправления URL, например tinyURL ( Я должен следовать по каждой отдельной ссылке и любым перенаправлениям) или просто ссылаться на страницу, которая содержит соответствующую ссылку (например, на страницу предварительного просмотра tinyURL).

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...