Я обслуживаю статический сайт через nginx, и моя цель - заменить URL-адреса, которые выглядят следующим образом:
с
Ключом не является косая черта. В настоящее время я делаю нечто подобное, используя псевдонимы местоположения, но это утомительно, потому что для каждого файла требуется блок местоположения, а также добавляется косая черта, поскольку nginx рассматривает псевдонимы как каталоги:
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;
}
И так далее. Я прочитал документацию по переписыванию, и я не могу синтезировать то, что говорится, и то, что мне нужно для этого. Я не прихожу из Apache. nginx - мой первый набег на веб-серверы, поэтому я уверен, что упускаю что-то очевидное, так как мой HTTP-фон слабый. Заранее благодарим за любую помощь, которую вы можете предоставить.
try_files $uri.html $uri/ =404;
будет лучше для SEO, поскольку у вас не будет двух URL-адресов foobar.com/bar и foobar.com/bar.html, указывающих на один и тот же ресурс.Согласно комментарию от @Khaja, лучший ответ:
Так что обслуживается только одна копия ресурса (без расширения .html). Вы не хотите делить силу ссылок на несколько URL-адресов, обслуживающих дублированный контент. Найдите документацию здесь .
источник