欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Nginx Location和Rewrite精心研究浅析

来源:本站整理 作者:佚名 时间:2017-09-12 TAG: 我要投稿
server internals: DOCUMENT_ROOT, SERVER_PORT, SERVER_PROTOCOL;
system stuff: TIME_YEAR, TIME_MON, TIME_DAY。

详解以下:
HTTP_USER_AGENT  用户应用的署理,比方浏览器;
HTTP_REFERER  告诉服务器,从哪一个页面来拜访的;
HTTP_COOKIE             客户端缓存,重要用于存储用户名和暗码等信息;
HTTP_HOST  婚配服务器ServerName域名;
HTTP_ACCEPT  客户端的浏览器支撑的MIME范例; 
REMOTE_ADDR  客户端的IP地点
QUERY_STRING  URL中拜访的字符串;
DOCUMENT_ROOT         服务器宣布目次;
SERVER_PORT  服务器端口;
SERVER_PROTOCOL  服务器端协定;
TIME_YEAR  年;
TIME_MON  月;
TIME_DAY  日;
弥补: if指令:

语法: if (condition) { ... }
默认值: —
上下文: server, location
盘算指定condition的值。盘算指定的condition的值。假如为真,履行界说在大括号中的rewrite模块指令,并将if指令中的设置装备摆设指定给哀求。if指令会从上一层设置装备摆设中承继设置装备摆设。

condition为下:

前提 说明
变量名 若何变量值为空或许以0开端的字符串,则为假
= 运算符即是,则为真
!= 运算符不即是,则为真
~ 大小写敏感,婚配变量和正则
~* 大小写不敏感,婚配变量和正则
-f | !-f 反省文件能否存在
-d | !-d 反省目次能否存在
-e | !-e 反省文件,目次或标志链接能否存在
-x | !-x 反省能否是可履行文件
Nginx Rewrite案例

将www.abc1.com 跳转到 www.abc2.com

if ( $host = 'www.abc1.com' ){
   rewrite ^/(.*)$ http://www.abc2.com/$1 permanent;
 }
拜访www.abc1.com跳转www.abc1.com/newindex.html

rewrite ^/$ http://www.abc1.com/newindex.html permanent;
拜访/test/跳转到www.abc1.com/newindex.html

rewrite ^/test/$ http://www.abc1.com/newindex.html permanent;
多域名跳转到 www.abc1.com

if ( $host != 'www.abc1.com' ) {
 rewrite ^/(.*)$  http://www.abc1.com/$1  permanent;
 }
拜访文件和目次不存在跳转至index.html。

if ( !-e $request_filename )
 {
 rewrite  ^/(.*)$  /index.html  last;
 }
目次对调 /xxxx/123456 ====> /xxxx?id=123456

rewrite ^/(.+)/(\d+)  /$1?id=$2 last;
断定浏览器User Agent跳转。

if( $http_user_agent  ~ MSIE)
{
rewrite ^(.*)$ /ie/$1 break;
}
制止拜访以.sh,.flv,.mp3为文件后缀名的文件。

location ~ .*\.(sh|flv|mp3)$
 {
  return 403;
 }
将挪动用户拜访跳转至挪动端。

if ( $http_user_agent ~* "(Android)|(iPhone)|(Mobile)|(WAP)|(UCWEB)" )
 {
 rewrite ^/$      http://m.jfedu.net/       permanent;
 }
婚配URL访随意率性字符串前面含有?tid=13就跳转,$args 表现随意率性字符串

if ( $args ~* tid=13 ){
 return 404;
}
拜访/10690/jj/123跳转至/index.php?tid/10690/items=123,[0-9]表现随意率性一个数字,+表现多个,(.+)表现任何多个字符。

rewrite   ^/([0-9]+)/jj/(.+)$     /index.php?tid/$1/items=$2     permanent;

上一页  [1] [2] 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载