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