Dédier un sous domaine à ses ressources statiques avec Nginx

Admettons que votre domaine principal “domain.tld” et un sous domaine “static.domain.tld” utilisé spécialement pour faire du domain sharding pointent tous les deux sur le même webroot : /home/www/domain.tld.

Vous souhaitez :

  • Empêcher l’accès à la même page web depuis les deux domaines (duplicate content)
  • Rediriger sur le domaine principal si une ressource non autorisée est appelée depuis le sous domaine.

Concrètement :

  • http://static.domain.tld/my-webpage/ redirigera vers http://domain.tld/my-webpage/,
  • http://static.domain.tld/image.png et http://domain.tld/image.png seront accessibles.
server {
    server_name static.domain.tld;
    root  /home/www/domain.tld;

    location / {
        rewrite ^(.*) http://domain.tld$1 permanent;
    }

    location ~* ^.+.(jpe?g|gif|css|png|js|ico|txt|srt|swf)$ {
        expires max;
    }
}

server {
    server_name domain.tld;
    root  /home/www/domain.tld;

    # Le reste du vhost ...
}