Переписать правила nginx

Переписать правила nginx

Я пытаюсь настроить правила перезаписи для моего сайта, работающего на nginx. Если кто-то заходит на сайт, я хочу, чтобы он видел содержимое, mysite.com/wordpressно URL-адрес не должен меняться, он должен оставаться, mysite.com. Но если кто-то заходит, mysite.com/some_file.phpон должен видеть этот файл. В моем блоке местоположения, когда я добавляю перенаправление 301, это работает, но когда я добавляю некоторые правила перезаписи, они не работают, и я вижу содержимое корня на example.com. Пожалуйста, подскажите, как заставить правила перезаписи работать.

это работает, но с изменением URL-адреса example.com/wordpress(что не является желаемым результатом)

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

это не работает

КОНФИГУРАЦИЯ 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;
}

решение1

Я исправил это, добавив

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

в location / block и удаляя все остальные правила перезаписи. Что он делает, так это сначала пытается запросить файл, затем /wordpress подпапку, затем index.php в подпапке.

Связанный контент