我正在尝试将nginx配置为提供纯静态html页面。我正在使用Ubuntu 18.04。
问题如下: 尝试通过url输入http://www.mywebsite.com/进入我的网站时,它会自动将URL更改为http://www.mywebsite.com/index。
使用http://www.mywebsite.com/index.html时,它还会将URL更改为http://www.mywebsite.com/index-但我认为这是因为重写规则从uri中删除了.html扩展名。
同时使用“ /”和“ index.html”时,我想删除愚蠢的“ / index”结尾。我找到了一种解决方案,但不确定是否是“合适的”解决方案:
# If URI equals '/' then find index.html static page
location = / {
try_files /index.html $uri =404;
}
# After rewrite homepage URI equals '/index', it rewrites it to '/'
location = /index {
rewrite /index / permanent;
}
我试图通过使用简单的try_files对其进行配置,而不进行任何重写,返回等操作。但是无论如何,对于主页,它始终始终将URI更改为“ / index”。
我的配置
sites-available / mywebsite.com内容
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
# remove the .html extension from request URI
rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
root /var/www/mywebsite.com;
index index.html;
# redirect rules for homepage '/', removes 'index' from URI
include /etc/nginx/sites-available/conf/redirects-homepage-template.conf;
# rule for any URI content. Searches for static file with .html extension or exact URI content file name. If not found, returns 404.
location / {
try_files $uri.html $uri =404;
}
}
redirects-homepage-template.conf内容
# Rules for handling homepage redirects
# If URI equals '/' then find index.html static page
location = / {
try_files /index.html $uri =404;
}
# After rewrite homepage URI equals '/index', it rewrites it to '/'
location = /index {
rewrite /index / permanent;
}
该网站仅应提供静态内容,并应尽可能快地运行。我想知道我的解决方案的后果,以及是否有更好的方法可以从首页中删除愚蠢的“ / index”。
尚未配置域,使用裸IP地址进行测试。