Ich richte eine statische Site über Nginx ein und möchte URLs ersetzen, die wie folgt aussehen:
mit
Der Schlüssel ist kein abschließender Schrägstrich. Ich mache derzeit etwas Ähnliches mit Location-Aliasen, aber das ist mühsam, weil es einen Location-Block für jede Datei erfordert und einen abschließenden Schrägstrich anfügt, da nginx Aliase als Verzeichnisse ansieht:
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;
}
Und so weiter. Ich habe die Dokumentation über das Neuschreiben durchgelesen und kann scheinbar nicht zusammenfassen, was gesagt wird, um das zu tun, was ich es brauche. Ich komme nicht aus einem Apache-Hintergrund. nginx ist mein erster Einstieg in Webserver. Ich bin mir sicher, dass ich etwas Offensichtliches verpasse, da mein HTTP-Hintergrund schwach ist. Vielen Dank im Voraus für jede Hilfe, die Sie leisten können.
try_files $uri.html $uri/ =404;
wäre SEO-bezogen besser, da nicht zwei URLs foobar.com/bar und foobar.com/bar.html auf dieselbe Ressource verweisen.Laut dem Kommentar von @Khaja ist die beste Antwort:
Damit wird nur eine Kopie der Ressource bereitgestellt (die ohne die Erweiterung .html). Sie möchten Ihre Linkstärke nicht auf mehrere URLs aufteilen, die doppelten Inhalt enthalten. Hier finden Sie die Dokumentation hier .
quelle