現在、私のnginxはいくつかのドメインを、使用している1つのメインドメインに書き換えています。これが私の設定からの1つのルールです:
server {
listen X.X.X.X:80;
server_name .exampleblog.org;
rewrite ^(.*) http://blog.example.org$1 permanent;
}
** exampleblog.org *へのすべてのリクエストは、blog.example.orgにリダイレクトされます
www.exampleblog.org/+とexampleblog.org/+でユーザーをGoogle Plusページにリダイレクトする必要があります。異なるバージョンを試しました:
server {
listen X.X.X.X:80;
server_name .exampleblog.org;
location /+ {
rewrite ^ https://plus.google.com/12345678901234567890/ permanent;
}
rewrite ^(.*) http://blog.example.org$1 permanent;
}
上記およびその他のバージョンはblog.example.org/+にリダイレクトするだけです-何が問題なのですか?
Nginxのディレクティブは、構成ファイルに表示される順序で適用されるとは限りません。場所が選択される前にサーバーレベルの書き換えが機能し、常に一致するため、すべてがリダイレクトされます。次のような2番目の場所が必要です。
server {
listen x.x.x.x:80;
server_name .exampleblog.org;
# Match /+ requests exactly
location = /+ {
# I prefer return 301 instead of rewrite ^ <target> permanent,
# but you can use either
return 301 http://plus.google.com/1234567890/;
}
# Match everything else
location / {
return 301 http://blog.example.org$request_uri;
}
}