Answers:
回答问题1:
您要查找的功能称为URL重写。这允许您创建显示位于不同URL上的资源的掩码(或“假” URL)。
在Nginx中,这是通过rewrite <regexp-pattern> <target-url>
配置文件中的命令来实现的。这是域www.example.com的Nginx配置:
server {
listen 80;
server_name www.example.com;
root /var/www/example.com;
index index.html;
rewrite ^.*$ /index.html;
}
将<regexp-pattern>
(Regular EXPression)部分与您在浏览器中键入的url进行比较-如果匹配成功,<target-url>
则显示资源at 。
对问题2的回答:
当前URL不能仅使用纯HTML文档显示。您将需要使用服务器端脚本语言-例如PHP。这将使您可以向用户显示动态内容。有关于PHP和Nginx的导游取之不尽(https://askubuntu.com/a/134676)和关于如何显示从PHP当前的URL(话题https://stackoverflow.com/a/6768831)。
通用模式try_files
与默认URI一起使用。举一个简单的例子:
server {
root /path/to/root;
location / {
try_files $uri $uri/ /index.html;
}
}
有关更多信息,请参见此文档。
index.html
插入资源文件,这就是为什么我首先介绍通用解决方案的原因。
try_files /index.html =404;
或rewrite ^ /index.html break;
。但是,如果没有其他更改,它将破坏对资源文件(JS。CSS,IMG)的访问。
这是您要查找的代码
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www/;
index index.html;
location = /favicon.ico { access_log off; log_not_found off; }
error_page 404 =200 /;
}
使用server_name _; 他从任何IP,域监听。