1

So I have this kind of location: someplacecat.com Where someplace is dynamic and differs. And I want to rewrite it to someplace.ourdomain.com

So I wrote this location block:

location ~ (.*)cat(.*) { rewrite ^ $scheme://$1.ourdomain$2$request_uri; }

But I can't get it to match, what am I doing wrong here?

4

2 に答える 2

4

ロケーションブロックの問題

location ~ (.*)cat(.*) { rewrite ^ $scheme://$1.ourdomain$2$request_uri; }

rewrite ディレクティブが後方参照を最初の引数のものにリセットするため、次のように書き換える前にそれらを保存する必要があります。

location ~ (.*)cat(.*) { 
  set $subdomain $1; 
  set $tld $2;
  rewrite ^ $scheme://$subdomain.ourdomain.$tld$request_uri; 
}

これは、以下の anwser の if-block で行ったこととほぼ同じです (そうしないと、同じ問題が発生します:)

于 2012-08-21T17:29:53.080 に答える
0

ifブロックを使用して解決できましたが、ロケーションブロックで何が間違っているのか誰かが知っている場合はお知らせください.

if ($host ~* (.*)cat\.(.*)) {
    set $subdomain $1;
    set $tld $2;
    rewrite ^ $scheme://$subdomain.ourdomain.$tld$request_uri;
}
于 2012-08-21T12:14:52.437 に答える