web-dev-qa-db-ja.com

nginxに2回の「location / {}」ブロックがある

すべてのサイトについて、次の行の中にいくつかのものを含むインクルードファイルがあります。

location / { 
    try_files $uri /index.php?$query_string;
}

単一のサイトの場合、一時的な「修正」として、mysite.com /からmysite.com/blogにすべてのリクエストをリダイレクトする必要があります。ブロックは次のようになります。

server {
    server_name mysite.com;
    root        /var/www/mysite;
    include     conf.d/common.conf.inc;

    # Redirect blog
    location / {
        rewrite / /blog redirect;
    }
}

ただし、これは失敗し、次のエラーが発生します。

Nginx構成のテスト:nginx:[emerg]/etc/nginx/sites-enabled/mysite:7の重複する場所「/」

質問

location / {}およびのすべてのリクエストをtry_filesから/にリダイレクトするために/blogを含むサーバーブロックを作成するにはどうすればよいですか?

3
Jurian Sluiman

解決策として、正確にルートの場所からのみリダイレクトを行うことができます。

 location = / {
        rewrite / /blog redirect;
    }
2