#wordpress #nginx
Вопрос:
У меня есть корневой сайт не wordpress, который имеет 2 поддомена (/блог и /магазин) в виде отдельных сайтов wordpress с отдельными базами данных. Мне удалось настроить для них отдельные базы данных mysql, и загрузка корневых страниц (т. Е. /блог или /магазин) и любой страницы в их соответствующих wp-администраторах также работает.
Однако загрузка любой другой страницы (например, /блог/статья 1 или /магазин/товар4), которая не является корневой страницей /блога или /магазина, возвращает страницу с ошибкой 404.
Почему это происходит и как это можно исправить?
Вот мой файл .conf в /etc/nginx/сайты доступны (также с символической ссылкой на /сайты включены):
upstream wp-php-handler-four {
server unix:/var/run/php/php7.4-fpm.sock;
}
server {
listen 1224 default_server;
listen [::]:1224 default_server;
root /var/www/ecpn_sites;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html index.php;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
location /blog {
try_files $uri $uri/ /index.php?$args;
}
location /shop {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass wp-php-handler-four;
}
}
Я пытался изменить location ~ .php$
location ~ /blog.php$
, добавить index.php
внутри блоков /блог и /магазин и изменить ?$args
?q=$uriamp;$args
, но безрезультатно.
Любая помощь будет признательна, так как я новичок в Nginx. Спасибо.
Комментарии:
1. Последним параметром ваших
try_files
утверждений должно быть/blog/index.php?$args
и/shop/index.php?$args
.2. Спасибо — это сработало
Ответ №1:
Измените try_files
на:
location /blog {
try_files $uri $uri/ /blog/index.php?$args /blog/index.php?$uriamp;$args ;
}
location /shop {
try_files $uri $uri/ /shop/index.php?$args /shop/index.php?$uriamp;$args ;
}