
Я знаю, что есть и другие темы, похожие на эту, но я уже несколько дней пытаюсь это сделать и не могу добиться результата, на данный момент, с приведенной ниже конфигурацией nginx на Ubuntu 18
server {
listen 80;
root /var/www/html/wordpress/public_html;
index index.php index.html;
server_name "example.com";
access_log /var/log/nginx/SUBDOMAIN.access.log;
error_log /var/log/nginx/SUBDOMAIN.error.log;
location /blog {
index index.php index.html index.htm;
try_files $uri $uri/ /blog/index.php?q=$uri&$args;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}}
Вот моя текущая структура папок
- /var/www/html/wordpress/public_html -> включить папку blog и один простой index.html (не обслуживает WordPress)
- /var/www/html/wordpress/public_html/blog -> это местоположение моих файлов WordPress
Однако, чтобы решить эту проблему, мне нужно решить две неверные задачи.
- Он нормально отображает "mysite.com/blog", но когда я нажимаю на любой блог или URL-адрес -> он показывает " example.com/?p=1" и, следовательно, ведет на простой index.html по адресу / (" example.com")
- Я также не могу получить доступ к wp-admin, он перенаправляет на это, если я ввожу "example.com/blog/wp-admin" -> "http://example.com/wp-login.php?redirect_to=http%3A%2F%2Fexample.com%2Fblog%2Fwp-admin%2F&reauth=1 -> затем 404
Большое спасибо.
Обновление 2: Я попробовал изменить WP_SITEURL на example.com и WP_HOME на example.com/blog, и эти 2 записи в таблице mysql wp-options также изменились. Однако, когда я попытался получить доступ к /blog/wp-admin ->http://example.com/blog/wp-admin/example.com/blog/wp-login.php?redirect_to=http%3A%2F%2Fexample.com%2Fblog%2Fwp-admin%2F&reauth=1-> 404
решение1
Вам наверняка нужно
root /var/www/html/wordpress/public_html/blog;
в блокеlocation /blog {}
При этом блок location ~ \.php$
должен выглядеть следующим образом:
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
также вам нужно изменить директиву try_files на
try_files $uri $uri/ /blog/index.php?$args;