У меня есть несколько статических сайтов (в основном созданных Sphinx), которые я пытаюсь разместить на своем VPS. Я установил и настроил nginx в соответствии с инструкциями, и я могу успешно отображать свои сайты, но проблема в том, что URL-адреса являются абсолютными, и это выглядит некрасиво.
Например, типичная папка сайта может выглядеть так:
/public_html/index.html /public_html/api.html /public_html/quickstart.html
И HTTP-запросы на / изменить URL-адрес на "http: //sitename/index.html". Я в основном хочу убрать все статические префиксы из требований URL и заставить nginx направлять входящие запросы в /, / api, / quickstart в нужные места, а также заставить nginx отображать правильные красивые URL-адреса, когда пользователи посещают страницы.
Я пробовал поискать в Google, но все, что я нашел, это правила перезаписи, которые, как мне кажется, слишком сложны для того, что я пытаюсь сделать.
Любая помощь будет принята с благодарностью.
Для этого вам следует использовать try_files. Идея состоит в том, что вы создадите свои URL-адреса без .html, а Nginx незаметно добавит его. Пример конфигурации ниже.
server {
#listen/server_name/root here.
try_files $uri.html $uri $uri/ @notfound;
location @notfound {
alias /your/404/file.html
return 404;
}
}
Использовать статическое местоположение:
location / {
index index.html;
root /var/www/nginx-default;
}
location /api {
index api.html;
alias /var/www/nginx-default;
}
location /quickstart {
index quickstart.html;
alias /var/www/nginx-default;
}
регулярное выражение:
location ~/(.*)$ {
alias /var/www/nginx-default/$1.html;
}