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つのセグメントを反転すると、正常に機能します。
私は何か間違ったことをしていますか?サーバー名が明示的に指定されている場合、ルールの順序が重要なのはなぜですか?