【发布时间】:2020-09-10 14:18:05
【问题描述】:
我正在学习一些关于 nginx 的知识,但我已经碰壁了。我正在尝试运行一个小型静态 html 站点,该站点具有非常简单的树结构,如下所示:
/var/www/mydomain.com/pages/category1/0.html
/var/www/mydomain.com/pages/category1/1.html
/var/www/mydomain.com/pages/category1/2.html
/var/www/mydomain.com/pages/category1/3.html
/var/www/mydomain.com/pages/category1/4.html
/var/www/mydomain.com/pages/category1/5.html
/var/www/mydomain.com/pages/category1/6.html
/var/www/mydomain.com/pages/category1/7.html
/var/www/mydomain.com/pages/category1/8.html
/var/www/mydomain.com/pages/category1/9.html
/var/www/mydomain.com/pages/category2/0.html
/var/www/mydomain.com/pages/category2/1.html
/var/www/mydomain.com/pages/category2/2.html
/var/www/mydomain.com/pages/category2/3.html
/var/www/mydomain.com/pages/category2/4.html
/var/www/mydomain.com/pages/category2/5.html
/var/www/mydomain.com/pages/category2/6.html
/var/www/mydomain.com/pages/category2/7.html
/var/www/mydomain.com/pages/category2/8.html
/var/www/mydomain.com/pages/category2/9.html
/var/www/mydomain.com/pages/category3/0.html
/var/www/mydomain.com/pages/category3/1.html
/var/www/mydomain.com/pages/category3/2.html
/var/www/mydomain.com/pages/category3/3.html
/var/www/mydomain.com/pages/category3/4.html
/var/www/mydomain.com/pages/category3/5.html
/var/www/mydomain.com/pages/category3/6.html
/var/www/mydomain.com/pages/category3/7.html
/var/www/mydomain.com/pages/category3/8.html
/var/www/mydomain.com/pages/category3/9.html
如果我通过www.mydomain.com/pages/category1/1.html 或www.mydomain.com/pages/category2/2.html 等访问网址...一切都会正常,到目前为止一切正常(所有链接都很好)。
每个 html 页面都使用类似于此的相对 href:
href="../category1/0.html"
href="../category2/0.html"
href="../category3/0.html"
href="0.html"
href="1.html"
href="2.html"
href="3.html"
href="4.html"
href="5.html"
href="6.html"
href="7.html"
href="8.html"
href="9.html"
因此,当您的请求类似于 www.mydomain.com/pages/category1/1.html 时,一切正常是有意义的。
现在,我的问题来了,我希望网站在有人访问 www.mydomain.com 时也能正常工作,所以我想到的第一个想法是修改服务器 index 指令,如下所示:
server {
server_name mydomain.com;
root /var/www/mydomain.com;
index pages/category1/0.html;
# index.html fallback
location / {
try_files $uri $uri/ index.html;
}
}
但如果我这样做,所有链接都将变得无效......我的意思是,它会向www.mydomain.com 响应有效内容,但从那里所有相关网址都将无效。
我确信这是一个非常基本的场景,所以您能否建议我如何通过修改我上面的 nginx 配置来解决这个问题?
附言。我知道这可以更容易地解决,可能使用适当的后端技术而不是平面静态 html,但我现在想保持它尽可能简单,所以如果可以通过调整 nginx 配置来解决这个问题,那就太好了。
【问题讨论】: