La documentación de nginx dice que el server_name directive admite expresiones regulares. He estado golpeando mi cabeza contra la pared tratando de hacer funcionar una expresión regular trivial.Redirigir un subdominio con una expresión regular en nginx
Quiero http://subdomain.mydomain.com para redirigir a http://mydomain.com/subdomain
Aquí está mi código.
server {
server_name "~^subdomain\.mydomain\.com$";
rewrite^http://mydomain.com/subdomain;
}
También, potencialmente notable. Más abajo en el archivo de configuración nginx hay una regla:
server {
server_name *.mydomain.com
...
}
¿Qué estoy haciendo mal?
ACTUALIZACIÓN:
Se ha sugerido que no lo uso de expresiones regulares para esto ... para ofrecer un poco más de claridad: la expresión regular trivial era simplemente para fines de resolución de problemas. La expresión regular real se verá más como ...
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;
}
Por lo tanto, sería preferible usar regex.
no tiene idea acerca de nginx, pero ¿por qué hay una tilde al comienzo de la expresión regular? – sweaver2112
La tilde líder le dice a nginx que esta es una expresión regular. – danott