htmlpurifier nofollow работает только для сгенерированных ссылок

Я использую библиотеку очистки HTML для форматирования комментариев на моем веб-сайте.

Однако я кое-что заметил. В моих настройках для 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-адреса больше не работают.


person Felix Maxime    schedule 05.10.2019    source источник


Ответы (1)


<a href="www.google.com">google</a>, поскольку в нем отсутствует схема (http://, https://, ftp:// и т. д.), фактически является ссылкой на что-то вроде http://example.com/www.google.com (в зависимости от того, находитесь ли вы в папке своего сайта или нет). Поскольку nofollow обычно используется для предотвращения кражи ссылочного веса другими сайтами, относительные ссылки, подобные этой, вероятно, не применяются.

Вместо этого попробуйте что-то вроде этого:

<a href="https://www.google.com">google</a>

(В качестве бонуса ссылка действительно будет работать таким образом.)

person ceejayoz    schedule 05.10.2019