Temos vários clientes configurados para que eles mantenham o controle sobre seu próprio DNS, já que alguns deles têm apenas subdomínios que apontam para nós. Estamos usando o nginx como um balanceador de carga que também lida com redirecionamentos e temos nossos redirecionamentos no arquivo vhost padrão (00default). Nada muito complexo, funciona muito bem para nós:
if ($host ~* "^ourdomain.com$") {
rewrite ^(.*)$ http://www.ourdomain.com$1 permanent;
}
if ($host ~* "^subdomain.otherdomain.com$") {
rewrite ^(.*)$ https://ourdomain.com$1 permanent;
}
if ($uri !~* (/option/.*|/simple/.*|/embed/.*|/mini/.*|/someOtherOption\.action.*|/otherOption\.action.*|/file/[0-9a-zA-Z]+/html5.*|/file/[0-9a-zA-Z]+/html5mobile.*|/thumbnail/.*) ) {
set $cname_match "N";
}
if ($host !~* "(.*\.)?ourdomain\.com|videos\.yetanotherdomain\.com") {
set $cname_match "${cname_match}N";
}
if ($cname_match = "NN") { rewrite ^.*$ http://www.ourdomain.com/; }
if ($uri !~* (/thumbnail_.*|/vcomments/.*|/onethmb.gif$|/crossdomain.xml$|/otherthmb[0-9]+.gif$)) {
set $thumb_redirect "Y";
}
if ($host ~* "^(cdn-)?thumbs\.ourdomain\.com") {
set $thumb_redirect "${thumb_redirect}Y";
}
if ($thumb_redirect = "YY") { rewrite ^.*$ http://www.ourdomain.com/ permanent; }
location / {
proxy_pass http://ourdomain_apache_pool;
error_page 404 @fallback404;
error_page 403 @fallback403;
}
# redirects
location /learn-more {
rewrite /learn-more/? http://www.ourdomain.com/features permanent;
}
# help
location ~* ^/help/zendesk/*.*$ {
proxy_pass http://ourdomain_ruby_pool;
}
location ~* ^/help/*.* {
rewrite ^/(.*) http://support.ourdomain.com permanent;
}
Parece-me que você pode usar uma das regras de reescrita acima, como:
if ($host ~* "^subdomain.otherdomain.com$") {
rewrite ^(.*)$ https://ourdomain.com$1 permanent;
}
e peça-lhes que apontem o DNS para o seu domínio no seu servidor, depois reescrevam-no como quiser.