我正在使用HTML Purifier,并且必须将nofollow设置为所有外部链接。
我在自己的网站上设置了URI.Host
,并将HTML.Nofollow
设置为true
。
假设将nofollow
应用于所有外部链接,而不应用于内部,而是也应用于内部子域链接。
我找到了一个相对的问题,但不能解决我的问题。
http://htmlpurifier.org/phorum/read.php?2,5611
在我的html页面中,我有一些链接,例如:
<a href='http:\/\/exemple.com\/' target=\"_blank\">Link<\/a>
<a href='https:\/\/exemple.com\/' target=\"_blank\">Link<\/a>
<a href='http:\/\/sub.exemple.com\/' target=\"_blank\">Link<\/a>
<a href='https:\/\/sub.exemple.com\/' target=\"_blank\">Link<\/a>
<a href='http:\/\/www.exemple.com\/' target=\"_blank\">Link<\/a>
<a href='https:\/\/www.exemple.com\/' target=\"_blank\">Link<\/a>
我将URI.Host设置为exemple.com
$config->set('URI.Host', 'exemple.com');
我设置的HTML.Nofollow的结果
$config->set('HTML.Nofollow', true);
是:
<a href="http://exemple.com">Link<\/a>
<a href="https://exemple.com">Link<\/a>
<a href="http://sub.exemple.com" rel="nofollow">Link<\/a>
<a href="https://sub.exemple.com" rel="nofollow">Link<\/a>
<a href="http://www.exemple.com" rel="nofollow">Link<\/a>
<a href="https://www.exemple.com" rel="nofollow">Link<\/a>
为什么其他子域为nofollow?
我也尝试不使用http和https。它可以工作,但需要在链接上保留协议。 例子
<a href='exemple.com\/' target=\"_blank\">Link<\/a>
<a href='exemple.com\/' target=\"_blank\">Link<\/a>
<a href='sub.exemple.com\/' target=\"_blank\">Link<\/a>
<a href='sub.exemple.com\/' target=\"_blank\">Link<\/a>
<a href='www.exemple.com\/' target=\"_blank\">Link<\/a>
<a href='www.exemple.com\/' target=\"_blank\">Link<\/a>
<a href="exemple.com">Link<\/a>
<a href="exemple.com">Link<\/a>
<a href="sub.exemple.com">Link<\/a>
<a href="sub.exemple.com" >Link<\/a>
<a href="www.exemple.com">Link<\/a>
<a href="www.exemple.com">Link<\/a>