Почему не работаю записи wordpress при рубриках написанных текстом?
Добрый день, столкнулся со следующей проблемой:
Имеется сайт.ру с рубриками и подрубриками.
Если создать рубрику "1" и в ней подрубрику "2", а затем запись "3", то по пути сайт.ру/1/2/3 запись открывается,
Но если создать рубрику "один", в ней подрубрику "два", а затем запись "3", то по пути сайт.ру/один/два/3 получаем ошибку 404 (от Wordpress).
Перебробовал кучу всего:
location / {
1) try_files $uri $uri/ /index.php?$args;
2) try_files $uri $uri/ /index.php?q=$uri&$args;
даже 3) try_files $uri $uri/ $uri/$uri/ /index.php?$args;
даже 4) try_files $uri $uri/ =404; - в этом случае nginx выдает 404 ошибку }
Добавлял
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
Но толку нет.
в "Постоянных ссылках" wordpress если установить "простые" или "названия записей", то записи открываются
Куда копать? Подскажите кто сталкивался
Логи:
1) Wordpress Debug ничего не пишет
2) nginx чистые
3) php8.4-fpm чистые
методом научного тыка определил, что для "site.ru/rubrika/subrubrika/1" при записи вида "/%category%/%postname%" или "/%category%/%postname%/" получаем 404 ошибку, но если "/%category%/%postname%.html", то "site.ru/rubrika/subrubrika/1.html" работает
методом поиска нашел и выяснил проблему. Может кому будет полезно.
Есть прекрасный плагин monkeyman-rewrite-analyzer/ который проверяет все правила перезаписи.
С помощью него выяснил, что если назвать запись 4, то запись вида сайт.ру/рубрика/подрубрика/4/ будет считать что 4/ - 4 страница (по счету) в подрубрике. поэтому запись надо называть либо four, либо 4.html.
вордпресс кривовато работает с кириллицей в ярлыках вложенных категорий, rewrite rules для таких путей генерятся с ошибками. nginx не виноват, он всё отдаёт на index.php нормально. Поставь Cyr-To-Lat и пересохрани постоянные ссылки.
p.s. можно и без плагина — задай латинские ярлыки рубрикам руками