正则匹配条件
~ 为区分大小写匹配~* 为不区分大小写匹配!~和!~*分别为区分大小写不匹配及不区分大小写不匹配文件及目录匹配,其中:
-f和!-f用来判断是否存在文件-d和!-d用来判断是否存在目录-e和!-e用来判断是否存在文件或目录-x和!-x用来判断文件是否可执行flag标记
last 相当于Apache里的[L]标记,表示完成rewritebreak 终止匹配, 不再匹配后面的规则redirect 返回302临时重定向 地址栏会显示跳转后的地址permanent 返回301永久重定向 地址栏会显示跳转后的地址 变量名 功能 $host 请求信息中的 Host,如果请求中没有Host行,则等于设置的服务器名 $request_method 客户端请求类型,如 GET、 POST $remote_addr 客户端的 IP地址 $args 请求中的参数 $content_length 请求头中的 Content-length字段 $content_type 请求头中的 Content-Type字段 $http_user_agent 客户端agent信息 $http_cookie 客户端cookie信息 $remote_addr 客户端的IP地址 $remote_port 客户端的端口 $server_protocol 请求使用的协议,如HTTP/1.0、·HTTP/1.1 $server_addr 服务器地址 $server_name 服务器名称 $server_port 服务器的端口号 $document_root 针对当前请求的根路径设置值 $uri 请求的URI,可能和最初的值有不同,比如经过重定向之类的 $document_uri 与$uri相同 $limit_rate 对连接速率的限制 $request_uri 请求的URI,带查询字符串 $query_string 与$args相同 $scheme 所用的协议,http或者是httpsroot和alias
指令使用
location /i/ { root /data/w3; # 为请求设置根目录 } # 访问 /i/test.jpg 实际查找的路径为 /data/w3/i/test.jpg location /i/ { alias /data/w3/; # 为请求设置指定位置的替换 } # 访问 /i/test.jpg 实际查找的路径为 /data/w3/test.jpgroot指定目录,路径为 root + $uri
alias指定目录 路径为 alias + 资源名其它区别
alias 只能作用在location中,而root可以存在server、http和location中。
alias 后面必须要用 “/” 结束,否则会找不到文件,而 root 则对 “/” 可有可无。
如果别名是在用正则表达式定义的位置中使用的,那么这种正则表达式应该包含捕获,别名应该引用这些捕获 ,例如:
location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ { alias /data/w3/images/$1; }能用root实现的不要用alias
allow和deny
指令使用
访问控制指令
# 访问控制 location / { allow xx.xx.xx.xx; allow 10.1.0.0/16; allow 192.0.0.0/8; allow 172.0.1.0/24; # allow all; deny all; } # 执行时 从上到下,匹配到就跳出try_files
try_files指令说明
try_files指令
语法:try_files file … uri 或 try_files file … = code
默认值:无
作用域:server location其作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。
需要注意的是,只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内部500错误。命名的location也可以使用在最后一个参数中。与rewrite指令不同,如果回退URI不是命名的location那么$args不会自动保留,如果你想保留$args,则必须明确声明。
try_files $uri $uri/ /index.php$is_args$args;到此这篇关于nginx 常用指令 try_files allow root alias的使用的文章就介绍到这了,更多相关nginx try_files allow root alias内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
暂无评论内容