Reescrever regras nginx

Reescrever regras nginx

Estou tentando configurar regras de reescrita para meu site em execução no nginx. Se alguém acessar o site, quero que veja o conteúdo, mysite.com/wordpressmas o URL não deve mudar, deve permanecer, mysite.com. Mas se alguém acessar, mysite.com/some_file.phppoderá ver esse arquivo. No meu bloco de localização, quando adiciono um redirecionamento 301, ele funciona, mas quando adiciono algumas regras de reescrita elas não funcionam e vejo o conteúdo do root em example.com. Por favor, sugira como fazer as regras de reescrita funcionarem.

isso funciona, mas com uma mudança no URL para example.com/wordpress(o que não é o resultado desejado)

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

isso não funciona

CONFIGURAÇÃO 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;
}

Responder1

Eu consertei isso adicionando

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

para localização/bloqueio e remoção de todas as outras regras de reescrita. O que ele faz é primeiro tentar solicitar o arquivo, depois a subpasta /wordpress e depois o index.php na subpasta.

informação relacionada