Podaję stronę statyczną przez nginx, a moim celem jest zastąpienie adresów URL, które wyglądają jak:
z
Kluczem jest brak ukośnika końcowego. Obecnie robię coś podobnego przy użyciu aliasów lokalizacji, ale jest to żmudne, ponieważ wymaga bloku lokalizacji dla każdego pliku, a także dodaje ukośnik końcowy, ponieważ nginx patrzy na aliasy jako katalogi:
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;
}
I tak dalej. Przeczytałem dokumentację o przepisywaniu i nie mogę zsyntetyzować tego, co zostało powiedziane, do tego, czego potrzebuję. Nie pochodzę z tła Apache; nginx to moja pierwsza próba dostępu do serwerów sieciowych, więc jestem pewien, że brakuje mi czegoś oczywistego, ponieważ moje tło HTTP jest słabe. Z góry dziękuję za wszelką pomoc, którą możesz udzielić.
try_files $uri.html $uri/ =404;
lepszą byłaby lepsza pod względem SEO, ponieważ nie masz dwóch adresów URL foobar.com/bar i foobar.com/bar.html wskazujących na ten sam zasób.Według komentarza @ Khaja najlepszą odpowiedzią jest:
Tak więc obsługiwana jest tylko jedna kopia zasobu (bez rozszerzenia .html). Nie chcesz dzielić siły linku na wiele adresów URL obsługujących zduplikowane treści. Znajdź dokumentację tutaj .
źródło