try_files
try_files
例子:
location / {
try_files $uri $uri/ /index.php
}
首先尝试打开指定path的文件,如果文件不存在,则继续打开下一个文件,如果都打不开则返回500
假设请求为http://www.baidu.com/test,则$uri为test
访问时查找/$root/test文件没,如果不存在就尝试打开/$root/test/目录,如果还不存在就打开/index.html
$uri
$uri:这个变量指当前的请求URI,不包括任何参数(见$args)。这个变量反映任何内部重定向或index模块所做的修改。注意,这和$request_uri不同,因$request_uri是浏览器发起的不做任何修改的原生URI。不包括协议及主机名。
如果一个完整的url为http://www.baidu.com/stat.php?id=1585378&web_id=1585378 那么$uri获取的就是:/stat.php
如果一个完整的url为http://127.0.0.1/ 那么$uri获取的值是:/index.html
$request_filename
$request_filename:当前请求的文件路径,由root或alias指令与URI请求生成。
假设一个请求是http://www.baidu.com:8080/a/b/c.php
那么$request_filename取值为:/var/www/html/a/b/c.php
$request_uri
$request_uri:这个变量等于从客户端发送来的原生请求URI,包括参数。它不可以进行修改。
如果一个完整的url为http://www.baidu.com/stat.php?id=1585378&web_id=1585378 那么$request_uri获取的就是:/stat.php?id=1585378&web_id=1585378。不包括协议和主机名
如果一个完整的url为:http://127.0.0.1/ 那么$request_uri获取的值是: /
$document_uri
$document_uri:这个参数获取的值和$uri是一样的,也是/stat.php