Итак, я новичок в этом, и у меня есть сервер nginx, работающий на простой веб-странице. Конфигурация, которая у меня есть sites-available
является:
server {
listen 80 default_server;
root /var/www/mywebsite/;
index /html/index.html;
server_name mywebsite.com www.mywebsite.com;
location / {
try_files $uri $uri/ =404;
}
}
И мой index.html находится в этой структуре:
+------+ +----------+
+ html +-->+index.html|
+------+ +----------+
|
| +--------------+
+-->+scnd_page.html|
+--------------+
Когда я получаю доступ mywebsite.com
, Я вижу index.html
. Как я мог сделать mywebsite.com/scnd_page/
указать на send_page.html
?
Я пробовал создавать кое-что
location /scnd_page {
}
Но я не уверен, что на правильном пути. Это вообще нужно делать с этим файлом?
Вы можете просто настроить параметр индекса внутри блока местоположения:
location /html/scnd_page {
index scnd_page.html;
}
Также вы можете просто определить как «вторичный» индекс глобально scnd_page.html:
server {
listen 80 default_server;
root /var/www/mywebsite/;
# carefull setting '/html/index.html'...
index index.html scnd_page.html;
server_name mywebsite.com www.mywebsite.com;
location / {
try_files $uri $uri/ =404;
}
}
Вы могли бы использовать rewrite
чтобы убедиться, что выполняются внешние перенаправления, чтобы .html
никогда не будет виден пользователю, и try_files
для обслуживания фактических файлов.
location / {
rewrite ^(/.*)\.html$ $1 redirect;
try_files $uri $uri/index.html $uri.html =404;
}
Я бы не рекомендовал поддерживать косую черту в конце /$
подразумевает \.html$
, хотя; логика такой поддержки была бы немного уродливой, плюс это также вызовет дополнительные проблемы, если вы попытаетесь использовать относительные URL-адреса в указанном scnd_page.html
.