В документации nginx говорится, что директива server_name поддерживает регулярные выражения. Я ударился головой о стену, пытаясь заставить работать даже тривиальное регулярное выражение.
Я хочу http://subdomain.mydomain.com перенаправить на http://mydomain.com/subdomain
Вот мой код.
server {
server_name "~^subdomain\.mydomain\.com$";
rewrite ^ http://mydomain.com/subdomain;
}
Кроме того, потенциально заслуживает внимания. Далее в файле конфигурации nginx существует правило:
server {
server_name *.mydomain.com
...
}
Что я делаю неправильно?
UPDATE:
Было высказано предположение о том, что я не использую регулярное выражение для этого... чтобы предложить немного большую ясность: тривиальное регулярное выражение было просто для устранения неполадок. Реальное регулярное выражение будет больше похоже на...
server {
server_name "~^.*(cvg|cincinnati)\.fakeairport(app)?\.(org|com)$";
rewrite ^ http://fakeairport.com/cincinnati;
}
server {
server_name "~^.*(lex|lexington)\.fakeairport(app)?\.(org|com)$";
rewrite ^ http://fakeairport.com/lexington;
}
Поэтому было бы предпочтительнее использовать регулярное выражение.