Решение проблемы 404 ошибки для кириллических ЧПУ в WordPress на nginx
Столкнулся с проблемой некорректной работы постоянных ссылок (ЧПУ) в WordPress при использовании кириллических символов в URL. Опишу ситуацию и предпринятые шаги для диагностики.
Суть проблемы
На сайте с рубричной структурой наблюдается следующее:
- Если создать рубрику с латинским названием (например, "1"), внутри неё - подрубрику "2", а затем запись "3", то URL
сайт.ру/1/2/3открывается корректно. - Если создать рубрику с кириллическим названием (например, "один"), внутри неё - подрубрику "два", а затем запись "3", то при переходе по адресу
сайт.ру/один/два/3сервер возвращает ошибку 404 от WordPress.
Предпринятые попытки решения
Пробовал различные конфигурации директивы try_files в блоке location / конфигурации nginx:
try_files $uri $uri/ /index.php?$args;try_files $uri $uri/ /index.php?q=$uri&$args;try_files $uri $uri/ $uri/$uri/ /index.php?$args;try_files $uri $uri/ =404;(в этом случае 404 ошибка выдаётся непосредственно nginx).
Также добавлял правило для перезаписи:
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}Результат остался прежним - проблема не устранена.
Ключевое наблюдение
В настройках WordPress ("Настройки" → "Постоянные ссылки") проблема проявляется только при выборе структурных вариантов ЧПУ (например, "Название записи"). Если переключить на "Простые" (с параметрами ?p=123), записи начинают открываться, что указывает на проблему именно с маршрутизацией и обработкой «красивых» ссылок.
Диагностика
Логи не показывают явных ошибок:
- Режим WordPress Debug (
WP_DEBUG) - чистый. - Логи сервера nginx - чистые.
- Логи PHP-FPM (версия 8.4) - чистые.
Вопрос
В каком направлении продолжать поиск решения? Буду благодарен за советы от тех, кто сталкивался с подобной ситуацией.