
Tengo una configuración de una aplicación PHP escuchando en varios hosts, por ejemplo:
dominioprincipal.com a.dominioprincipal.com b.dominioprincipal.com
Algunas rutas en maindomain.com deben redirigirse. Para eso configuré esta redirección hace tiempo:
rewrite ^/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;
Lo que hace que todas las solicitudes a maindomain.com/myroute/ redirijan a maindomain.com/new-myroute.
El caso es que estos redireccionamientos también se aplican al resto de subdominios, haciendo que a.maindomain.com/myroute redirija a maindomain.com/new-myroute.
Me gustaría excluir estos subdominios de la aplicación de esa redirección, dejando intactas las rutas tipo a.maindomain.com/myroute.
Lo he intentado con diferentes reescrituras, como
rewrite ^https://maindomain.com/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;
rewrite ^maindomain.com/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;
rewrite maindomain.com/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;
Pero ninguno de ellos funciona.
¿Alguna idea sobre cómo aplicar la redirección sólo al dominio principal? Gracias.
Editar: el nombre del servidor tiene un comodín, escuchando todos los subdominios posibles que puedan existir:
server_name maindomain.com *.maindomain.com;
Respuesta1
Utilice un bloque de servidor independiente o utilice una condición if
if ($host = "example.com") {
rewrite ^/myroute/(.*)$ http://$server_name/new-myroute/$1 permanent;
}