llms.txt в WordPress

Добавьте файл llms.txt на сайт WordPress за несколько минут. Три метода, выберите подходящий для вашей конфигурации хостинга.

Последнее обновление:

Сравнение трёх способов

В WordPress нет встроенного способа отдавать произвольные файлы из корня домена. Вот три подхода, расположенные от самого простого к самому мощному:

  • Способ 1: загрузка по FTP: Загрузить llms.txt непосредственно в корневой каталог сервера по FTP/SFTP. Код не требуется. Лучше всего подходит для виртуального хостинга и статического контента, который редко меняется.
  • Способ 2, перенаправление в functions.php: Зарегистрируйте пользовательское правило перезаписи WordPress, которое отдаёт динамически сгенерированный llms.txt. Лучше всего, если файл должен автоматически обновляться при публикации новых страниц.
  • Метод 3, перенаправление .htaccess: Перенаправить /llms.txt в статический файл или другой URL с помощью Apache\'s .htaccess. Полезный запасной вариант, если нельзя загрузить файл непосредственно в корень.

Способ 1: загрузка файла по FTP

Это самый простой и надёжный метод. WordPress установлен в корне вашего домена (или подкаталоге), и всё, что вы помещаете в эту папку, веб-сервер отдаёт напрямую, не проходя через WordPress.

  1. Напишите свой llms.txt файл. Используйте генератор чтобы создать файл, или написать его вручную по руководство. Сохраните его локально как llms.txt.
  2. Подключитесь по FTP/SFTP. Используйте FileZilla, Cyberduck или файловый менеджер панели управления хостингом. Подключитесь к серверу.
  3. Перейдите в корень WordPress. Это папка, содержащая wp-config.php, wp-content/, и index.php.
  4. Загрузить llms.txt в эту папку.
  5. Проверьте: Посетить https://yourdomain.com/llms.txt в браузере. Вы должны увидеть обычный текст.

Метод 2: динамический файл через functions.php

Если вы хотите llms.txt должен динамически создаваться из контента WordPress, например перечисляя последние записи или ключевые страницы автоматически, можно подключиться к системе rewrite WordPress.

Добавьте следующее в functions.php или плагина для конкретного сайта:

/**
 * Serve a dynamic /llms.txt via WordPress rewrite.
 */
add_action( 'init', function() {
    add_rewrite_rule( 'llms\.txt$', 'index.php?llms_txt=1', 'top' );
} );

add_filter( 'query_vars', function( $vars ) {
    $vars[] = 'llms_txt';
    return $vars;
} );

add_action( 'template_redirect', function() {
    if ( ! get_query_var( 'llms_txt' ) ) {
        return;
    }

    $site_name = get_bloginfo( 'name' );
    $site_url  = home_url();
    $desc      = get_bloginfo( 'description' );

    // Build a curated list, customize as needed
    $pages = [
        [ 'title' => 'Home',    'url' => home_url( '/' ),          'desc' => 'Site entry point.' ],
        [ 'title' => 'Blog',    'url' => home_url( '/blog/' ),      'desc' => 'Latest articles.' ],
        [ 'title' => 'About',   'url' => home_url( '/about/' ),     'desc' => 'About this site.' ],
        [ 'title' => 'Contact', 'url' => home_url( '/contact/' ),   'desc' => 'Contact form.' ],
    ];

    $lines   = [];
    $lines[] = "# ${site_name}";
    $lines[] = '';
    $lines[] = "> ${$desc}";
    $lines[] = '';
    $lines[] = '## Core pages';
    $lines[] = '';
    foreach ( $pages as $page ) {
        $lines[] = "- [${$page['title']}](${$page['url']}): ${$page['desc']}";
    }
    $lines[] = '';

    header( 'Content-Type: text/plain; charset=utf-8' );
    echo implode( "\n", $lines );
    exit;
} );

После добавления этого кода перейдите в Настройки → Постоянные ссылки в панели администратора WordPress и нажмите Сохранить изменения чтобы сбросить правила rewrite. Затем перейдите на /llms.txt чтобы подтвердить, что это работает.

Перенаправление .htaccess

Если вы не можете напрямую загрузить файл в корень, но можете редактировать .htaccess, вы можете перенаправить /llms.txt на любой другой URL (включая загруженный файл в другом месте вашего сервера или внешний URL).

Добавьте следующее в ваш .htaccess файл, до блок перезаписи WordPress:

# llms.txt redirect, place BEFORE the WordPress block
RewriteEngine On
RewriteRule ^llms\.txt$ /wp-content/uploads/llms.txt [L,R=301]

Это перенаправляет https://yourdomain.com/llms.txt в загруженный вами файл через медиатеку WordPress (или размещённый вручную в wp-content/uploads/). Учтите, что перенаправление с кодом 301 означает, что фактический URL файла будет виден пользователям и ботам; для большинства случаев это нормально.

Если вы хотите отдавать файл без перенаправления (по каноническому /llms.txt URL), предпочтительнее метод 1 (FTP) или метод 2 (правило rewrite).

Проверка настройки

Независимо от выбранного метода проверьте результат:

  1. Посетить https://yourdomain.com/llms.txt, вы должны увидеть обычный текст без HTML оболочки.
  2. Выполните: curl -I https://yourdomain.com/llms.txt и проверить наличие 200 OK и Content-Type: text/plain.
  3. Вставьте URL в Валидатор llmtxt.info для подтверждения соответствия спецификации.
  4. Подтвердите llms.txt случайно не заблокирован в вашем robots.txt.

Продолжить чтение

Источники