J'ai une entrée de serveur sur mes configurations avec environ 50 entrées de localisation. J'ai besoin de définir un autre domaine sur mon serveur avec la même configuration, sauf pour un emplacement.
par exemple, j'ai
server {
# the port your site will be served on
# the domain name it will serve for
listen 443 ssl;
server_name example.com sudomain.example.com;
ssl_certificate /etc/loc/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/loc/privkey.pem; # managed by Certbot
proxy_set_header X-Forwarded-Proto https;
location /static/ {
root /srv/sites/example;
}
... # many more location defenition
}
J'ai besoin de faire quelque chose comme
location /robots.txt {
if ($host ~ ^\w+\.\w+\.\w+$) {
# subdomains
alias /srv/robots_disallow.txt;
} else {
alias /srv/robots.txt;
}
}
si c'est possible, je veux éviter d'extraire toute la configuration dans un snippet et de l'inclure ensuite dans deux entrées de serveur, une pour le domaine principal et une pour le sous-domaine.
Je sais que le code que j'ai copié ne fonctionne pas et j'ai lu si c'est le mal
ce qui suggère quelque chose
error_page 418 = @disallow_robots;
location /robots.txt {
alias /srv/robots.txt;
if ($host ~ ^\w+\.\w+\.\w+$) {
# subdomains
return 418;
}
}
location @disallow_robots {
alias /srv/robots_disallow.txt;
}
Mais ensuite j'obtiens the "alias" directive cannot be used inside the named location