Subdiretório Nginx Wordpress + administrador wp

Subdiretório Nginx Wordpress + administrador wp

Eu sei que existem outros semelhantes a este tópico, mas já tentei há dias e não consigo, atualmente, com a configuração nginx abaixo no 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;
       }}

Aqui está a estrutura atual da minha pasta

  • /var/www/html/wordpress/public_html -> inclui a pasta blog e um simples index.html (não servindo wordpress)
  • /var/www/html/wordpress/public_html/blog -> é a localização dos meus arquivos wordpress

No entanto, há duas partes erradas que preciso resolver.

  1. Ele exibe "mysite.com/blog" ok, mas quando clico em qualquer blog ou URL -> mostra " example.com/?p=1" e, portanto, leva ao simples index.html no local / (" example.com ")
  2. Não consigo acessar o wp-admin também, ele irá redirecionar para isso se eu colocar "example.com/blog/wp-admin" -> "http://example.com/wp-login.php?redirect_to=http% 3A%2F%2Fexample.com%2Fblog%2Fwp-admin%2F&reauth=1 -> então 404

Muito obrigado.

Atualização 2: Tentei alterar WP_SITEURL para example.com E WP_HOME para example.com/blog também modifiquei esses 2 registros na tabela mysql wp-options. no entanto, quando tentei acessar /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

Responder1

Com certeza você precisa

root /var/www/html/wordpress/public_html/blog;

no blocolocation /blog {}

Além disso, o bloco location ~ \.php$deve ficar assim:

location ~ \.php$ {
    try_files $uri =404;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}

além disso, você precisa alterar a diretiva try_files para try_files $uri $uri/ /blog/index.php?$args;

informação relacionada