web-dev-qa-db-ja.com

nginxはベースURLを書き換えます

ルートURLをお願いします

http://www.example.com

リダイレクトする

http://www.example.com/something/else

これは、一部の奇妙なWPプラグインが常にベースURLにCookieを設定するため、キャッシュできないためです。

私はこのディレクティブを試しました:

location / {
    rewrite  ^  /something/else  break;
}

しかし、1)リダイレクトがなく、2)ページが私のサーバーに1,000を超えるリクエストを送信し始めます。これで:

 location / {
        rewrite  ^  http://www.example.com/something/else  break;
    }

Chromeはリダイレクトループを報告します。

使用する正しい正規表現は何ですか?

8
ptn777

あなたは本当に一致したい完全にロケーションブロックのルートURL、「絶対にすべて」ではない:

location = / {
    rewrite ^ /something/else break;
}
5
womble

これは仕事をするはずです:

location / {
   rewrite  ^/$  /something/else  break;
}
3
user9565

rewrite statement は、ターゲットが絶対URLであるか、redirectまたはpermanentフラグを設定していない限り、デフォルトで内部書き換えを実行します。次のようなものは、クライアントにHTTPリダイレクトを返します。

rewrite ^/$ /something/else redirect;
1
mgorven

またはこれを行うことができます:

location = / {
     rewrite ^/$    http://example.com/an/other/path;
}

書き換えられたURLが「http」スキームで始まる場合、nginxはHTTP 302リダイレクトをクライアントに自動的に送信します。

1
mishka