我正在使用HTML Purifier库进行网站的注释格式设置。
但是,我注意到了一些东西。在我的设置中,我将HTML.nofollow设置为true。
'HTML.Nofollow' => true,
但是当我编写锚链接时,不会添加nofollow。但是使用生成的链接,它将可以正常工作。
示例输入:
<a href="www.google.com">google</a>
https://www.yahoo.com
输出:
<p><a href="www.google.com">google</a></p>
<p><a href="https://www.yahoo.com" rel="nofollow">https://www.yahoo.com</a></p>
这是我的设置:
return [
'encoding' => 'UTF-8',
'finalize' => true,
'cachePath' => storage_path('app/purifier'),
'cacheFileMode' => 0755,
'settings' => [
'default' => [
'HTML.Doctype' => 'HTML 4.01 Transitional',
'HTML.Allowed' => 'b,i,u,ul,ol,li,p,blockquote,table,tr,th,td,a[href|title],sup,sub,span,code',
'AutoFormat.AutoParagraph' => true,
'AutoFormat.RemoveEmpty' => true,
'AutoFormat.Linkify' => true,
'HTML.Nofollow' => true,
],
],
];
我可以将其删除为允许的HTML元素之一,但是出于某种原因,这意味着生成的URL不再可用。
<a href="www.google.com">google</a>
,因为它缺少方案(http://
,https://
,ftp://
等),所以它是[[actually指向类似http://example.com/www.google.com
之类的链接(取决于您是否位于网站的文件夹)。由于nofollow
通常用于防止other网站窃取链接汁,因此类似的相对链接可能是免税的。
<a href="https://www.google.com">google</a>
(作为奖励,链接实际上将以这种方式工作。)