J'ai le domaine suivant pointé vers mon serveur nginx my.web.server
Je voudrais rediriger les demandes vers /cdn
vers un hôte de fichiers situé sur file.host/myfiles
Le fichier de configuration se lit comme suit :
serveur {
écoute 80;
nom_serveur my.web.server;
emplacement ^~ /cdn {
proxy_pass https://file.host/myfiles;
}
}
Cette configuration redirige avec succès toutes les demandes entrantes vers l'hôte de fichiers de destination, cependant je n'ai pas de redirections vers index.html
si un / ou une route est saisie.
Un exemple de ce que j'aimerais réaliser est le suivant :
my.web.server/cdn => (proxy) file.host/myfiles/index.html
my.web.server/cdn/ => (proxy) file.host/myfiles/index.html
my.web.server/cdn/images => (proxy) file.host/myfiles/images/index.html
my.web.server/cdn/images/ => (proxy) file.host/myfiles/images/index.html
my.web.server/cdn/** => (proxy) file.host/myfiles/**/index.html
my.web.server/cdn/**/ => (proxy) file.host/myfiles/**/index.html
Idéalement, vous ne verriez pas index.html dans l'URL et cela se redirigerait simplement vers ce chemin de fichier, cependant, si ce n'est pas possible, rediriger l'utilisateur là-bas serait également acceptable.
J'ai essayé des choses comme :
emplacement ^~ /cdn {
proxy_pass https://file.host/myfiles;
try_files $uri $uri/ $uri/index.html;
}
Ce que j'espère réaliser avec cela est d'indiquer à nginx de "rediriger ici", essayer de voir s'il y a un fichier et si rien n'apparaît, essayer de trouver un index.html
dans cette route.
0 votes
try_files
teste la présence d'un fichier local. Vous devez gérer une réponse 404 et rediriger correctement. Peut-être quelque chose d'horrible comme cette réponse fonctionnera pour vous.