Необычные проблемы конфигурации NGINX Wordpress (безголовый Wordpress + интерфейс статического сайта в одном домене)

У меня есть очень специфический вариант использования, когда я использую Wordpress в качестве серверной части CMS (в основном в конфигурации без заголовка), за исключением некоторых URL-адресов, к которым я хочу применить обычную конфигурацию NGNIX/Wordpress. Конкретно:

Большинство URL-запросов к корню NGINX должны обслуживать статические HTML-файлы из подкаталога. Это указано в этом блоке местоположения в блоке server моего файла виртуальных хостов:

location / {
    root /var/www/html/node/website.com/_build;
    index index.html;

    try_files $uri $uri.html $uri/ /404/index.html;
}

Но все файлы, специфичные для Wordpress (т. е. те, которые находятся за URL-адресом /wp-*), по-прежнему должны обслуживаться Wordpress. В конце концов, Wordpress также должен обслуживать несколько конкретных URL-адресов (например, /shop, /my-account), а не статические html-файлы, но я могу поработать над этим позже. В настоящее время у меня есть местоположение, специфичное для WP, определенное как:

location ~* /wp- {
    index index.php;
    try_files $uri $uri/ /index.php?$query_string;

    location ~ \.php$ {
        root /var/www/html/php/website.com;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}

Частично это работает. website.com/wp-json работает правильно. Большинство конечных точек URL-адресов обслуживаются из подкаталога _build при условии, что существует соответствующий HTML-файл. Но website.com/wp-admin и website.com/wp-login.php автоматически загружают соответствующие файлы PHP вместо их обработки.

Это говорит мне о том, что возникла проблема с передачей файлов index.php в php-fpm, но я не могу понять, где обрыв. Кстати, я дублирую блок location ~ \.php$ и в блоке server, за пределами блока wp-.

Какие-либо предложения?

Кроме того, если у кого-то есть предложения по правильной настройке конкретных «внешних» URL-адресов (например, /shop, /my-account), которые будут обслуживаться Wordpress, а не HTML-файлов _public, это было бы действительно полезно и здорово.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оказывается, это была проблема с кешированием в Chrome. Загрузка окна в режиме инкогнито показала, что мои блоки местоположения написаны правильно и работают. Оставлю этот вопрос здесь на случай, если у кого-то есть лучшее предложение относительно того, что я пытаюсь сделать, или он сможет использовать это в качестве справочного материала.

Другие вопросы по теме