htmlpurifier nofollow仅适用于生成的链接

问题描述 投票:0回答:1

我正在使用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不再可用。

htmlpurifier
1个回答
1
投票

<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>

(作为奖励,链接实际上将以这种方式工作。)

© www.soinside.com 2019 - 2024. All rights reserved.