Reescribir reglas nginx

Reescribir reglas nginx

Estoy intentando configurar reglas de reescritura para mi sitio que se ejecuta en nginx. Si alguien llega al sitio web, quiero que vea el contenido de, mysite.com/wordpresspero la URL no debería cambiar, debería permanecer mysite.com. Pero si alguien accede mysite.com/some_file.phpdebería poder ver ese archivo. En mi bloque de ubicación, cuando agrego una redirección 301, funciona, pero cuando agrego algunas reglas de reescritura, no funcionan y veo el contenido de la raíz en example.com. Sugiera cómo hacer que funcionen las reglas de reescritura.

esto funciona pero con un cambio en la URL example.com/wordpress(que no es el resultado deseado)

location = / {
    return 301 http://example.com/wordpress;
}

esto no funciona

CONFIGURACIÓN DE PHP NGINX:

location = / {

    #   return 301 http://example.com/wordpress;
    # nginx configuration

    if ($http_host ~ "^(www.)example.com$"){
        rewrite ^(.*)$ /wordpress/ break;
    }
    if ($http_host ~ "^(.*).example.com"){
        rewrite ^(.*)$ http://example.com/wordpress/%1/$1 redirect;
    }
    if (!-e $request_filename){
        rewrite ^(.*)$ /wordpress/$1;
    }
    rewrite ^/(.*)index\.(php)$ http://$http_host/$1 redirect;

}
location ~ \.php$ {
    try_files $uri =404;
    include fastcgi_params;
    fastcgi_pass php;
}

Respuesta1

Lo arreglé agregando

try_files $uri $uri/wordpress /wordpress/index.php?$args;

para ubicar/bloquear y eliminar todas las demás reglas de reescritura. Lo que hace es que primero intenta solicitar el archivo, luego la subcarpeta /wordpress y luego index.php en la subcarpeta.

información relacionada