server
とを使用してnginxリライトルールで遊んでいserver_name
ます。ドキュメントは、優先順位については十分に単純で明確に聞こえますが、少し奇妙な動作が発生しているので、何かを見逃していないかどうかを確認したいと思います。
www.domain.com
(www.domain.net
、などwww.domain.info
)以外のものをにリダイレクトしようとしていwww.domain.com
ます。www.domain.de
にredirectoすることを除いてwww.domain.com/de
。
私には次のルールがあります:
server {
server_name domain.de www.domain.de;
rewrite ^(.*) http://www.domain.com/de$1 permanent;
}
server {
server_name _;
rewrite ^(.*) http://www.domain.com$1 permanent;
}
server {
listen 80;
server_name localhost domain.com www.domain.com;
...
}
ただし、このルールセットでは、常にすべての非.com
ドメインをにリダイレクトするようwww.domain.com/de
です。server
一方、最初の2つのセグメントを反転すると、正常に機能します。
私は何か間違ったことをしていますか?サーバー名が明示的に指定されている場合、ルールの順序が重要なのはなぜですか?