J'utilise un site statique via nginx, et mon objectif est de remplacer les URL qui ressemblent à:
avec
La clé étant l'absence de barre oblique. Je fais actuellement quelque chose de similaire en utilisant des alias d'emplacement, mais cela est fastidieux car cela nécessite un bloc d'emplacement pour chaque fichier, et il ajoute également une barre oblique car nginx regarde les alias comme des répertoires:
location / {
root /srv/www/foo/public_html;
index index.html;
}
location /bar1 {
alias /srv/www/foo/public_html/;
index bar1.html;
}
location /bar2 {
alias /srv/www/foo/public_html/;
index bar2.html;
}
Etc. J'ai lu la documentation sur les réécritures, et je n'arrive pas à synthétiser ce qui est dit dans ce que j'ai besoin de faire. Je ne viens pas d'un milieu Apache; nginx est ma première incursion sur les serveurs Web, donc je suis sûr que je manque quelque chose d'évident car mon arrière-plan HTTP est faible. Merci d'avance pour toute aide que vous pouvez fournir.
try_files $uri.html $uri/ =404;
serait mieux en termes de référencement, car vous n'auriez pas deux URL foobar.com/bar et foobar.com/bar.html pointant vers la même ressource.Selon le commentaire de @Khaja, la meilleure réponse est:
Pour qu'une seule copie de la ressource soit servie (celle sans extension .html). Vous ne voulez pas diviser la force de votre lien sur plusieurs URL diffusant du contenu en double. Trouvez la documentation ici .
la source