提前道歉。我是Nginx的初学者,并且在服务器管理方面有很多知识要学习。经过一番搜索和阅读之后,我真的不了解如何直接解决我的问题。
使用Nginx时,我有以下URL,这些URL笨拙地显示了服务器上的文件路径和.html扩展名:
bwillis.info/artifact/faeriefm/faerieFM.html
我只想通过以下方式访问该页面:
bwillis.info/faeriefm
我该如何完成?据我了解,我将使用“重写”功能。但是我在分解和理解此处示例的语法时遇到了麻烦:
http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite
文件夹结构:
index.html位于根目录
四个页面位于名为“ artifact”的文件夹中的一个文件夹中,因此:bwillis.info/artifact/samplepage.html
在示例中我使用了另一页,在“ faeriefm”文件夹的深处还有一个文件夹。所以:bwillis.info/artifact/faeriefm/faerieFM.html
服务器配置文件:
server {
listen 80;
listen [::]:80;
root /var/www/bwillis.info/html;
index index.html index.htm index.nginx-debian.html;
server_name bwillis.info www.bwillis.info;
location / {
try_files $uri $uri/ =404;
}
}
答案 0 :(得分:1)
您在文件夹/var/www/bwillis.info/html/artifact/faeriefm/
中有许多文件。一个名为faerieFM.html
的HTML文件和一些资源文件,这些文件似乎是使用相对路径的URL加载的。
为了使相对路径的URL正常工作,您需要在原始HTML文件的URI中使用结尾的/
。
例如:
location /faeriefm {
root /var/www/bwillis.info/html/artifact;
index faerieFM.html;
}
上面的示例使用前缀位置,因为存在许多以/faeriefm
开头的URI,包括:/faeriefm/
和/faeriefm/javascript.js
。 root
指令可确保他们找到文件的正确文件夹。