
Sé que hay otros hilos similares a este, pero ya lo intenté durante días y no puedo lograrlo, actualmente, con la siguiente configuración de nginx en 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;
}}
Aquí está la estructura actual de mi carpeta.
- /var/www/html/wordpress/public_html -> incluye la carpeta blog y un index.html simple (no sirve para wordpress)
- /var/www/html/wordpress/public_html/blog -> es la ubicación de mis archivos de wordpress
Sin embargo, hay dos partes incorrectas que necesito resolver.
- Muestra "mysite.com/blog" bien, pero cuando hago clic en cualquier blog o URL -> muestra "example.com/?p=1" y, por lo tanto, me lleva a index.html simple en la ubicación / ("example.com ")
- Tampoco puedo acceder a wp-admin, se redirigirá a esto si pongo "example.com/blog/wp-admin" -> "http://example.com/wp-login.php?redirect_to=http% 3A%2F%2Fexample.com%2Fblog%2Fwp-admin%2F&reauth=1 -> luego 404
Muchas gracias.
Actualización 2: Intenté cambiar WP_SITEURL a example.com Y WP_HOME a example.com/blog. También modifiqué estos 2 registros en la tabla wp-options de mysql. sin embargo, cuando intenté acceder a /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
Respuesta1
Seguro que necesitas
root /var/www/html/wordpress/public_html/blog;
en el bloquelocation /blog {}
Además, el bloque location ~ \.php$
debería verse como se muestra a continuación:
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
Además, es necesario cambiar la directiva try_files a
try_files $uri $uri/ /blog/index.php?$args;