書き換えルール nginx

書き換えルール nginx

私は、nginx で実行しているサイトの書き換えルールを設定しようとしています。誰かが Web サイトにアクセスしたときに、 のコンテンツが表示されるようにしたいのですが、mysite.com/wordpressURL は変更せず、 のままにする必要があります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;

場所 / ブロックに移動し、他のすべての書き換えルールを削除します。これは、最初にファイルの要求を試み、次に /wordpress サブフォルダー、次にサブフォルダー内の index.php の要求を試みることによって行われます。

関連情報