凭栏勾思 發表於 2019-9-24 19:37:00

Nginx Rewrite域名及资源重定向

<p><strong><span style="font-size: 16px; font-family: 楷体">一.正则匹配</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; 1.匹配规则</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^$&nbsp; 标识符匹配后面跟-一个字符串。匹配字符串后将停止对后续的正则表达式进行匹配,如location ^~/images/,在匹配了/images/这个字符串后就停止对后续的正则匹配</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp; 精准匹配,如location=/,只会匹配url为/的请求</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~&nbsp;&nbsp; 区分大小写的匹配</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~*&nbsp; 不区分大小写的匹配</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !~&nbsp; 对区分大小写的匹配取非</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; !~* 对不区分大小写的匹配取非</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp; 通用匹配,如果没有其它匹配,任何请求都会被匹配到</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; 2.正则表达</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp; 重复前面的字符0次或多次</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ?&nbsp;&nbsp; 重复前面的字符0次或1次</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +&nbsp;&nbsp; 重复前面的字符1次或多次</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .&nbsp;&nbsp; 匹配除换行符以外的任意1个字符</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (a|b)&nbsp;&nbsp; 匹配a或b</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以...开头</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以...结尾</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {n}&nbsp;&nbsp;&nbsp;&nbsp; 重复前面的字符n次</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {n,}&nbsp; &nbsp;&nbsp;重复前面的字符n次或更多次</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {n,m)&nbsp;&nbsp; 重复前面的字符n到m次</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 重复前面的字符0次或多次,但尽可能少重复</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 重复前面的字符1次或更多次,但尽可能少重复</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ??&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 重复前面的字符0次或1次,但尽可能少重复</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {n.m}?&nbsp; 重复前面的字符n到m次, 但尽可能少重复</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {n,}?&nbsp;&nbsp; 重复前面的字符n次以上,但尽可能少重复</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; 3.正则表达式补充</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \W 匹配任意不是字母,数字,下划线.汉字的字符</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \S 配置任意不是空白符的字符</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \D 匹配任意非数字的字符</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \B 匹配不是单词开头或结束的位置</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配的那个字符a</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配a-z小写字母任意一个</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [^a] 匹配除了a以外的任意字符</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [^abc] 匹配除了abc这几个字母以外的任意字符</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">nginx Rewrite 规则</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">rewrite 功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现URL重写及重定向,rewrite只能放在server{}里,location{} .if {} . 并且只能对域名后边的除去参数外的字符窜起作用</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">nginx 的rewrite 规则兼容正则表达式的语法进行规则匹配,如果需要Nginx 的rewrite 功能,在编译安装nginx之前,必须安装PCRE库</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">语法:</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">rewrite 正则表达式&nbsp; 更换目标&nbsp; [标志位]</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">rewrite和location 功能有点像,都能实现跳转,主要区别在于rewrite 是在同一域名内更改获取资源的路径,而Location 是对路径做控制访问或反向代理,可以使用proxy_pass到其他机器,极多情况下rewrite 也会写在Location里,他们的执行顺讯是</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">1. 执行server块的rewrite指令</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">2. 执行Location匹配</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">3. 执行选定的Location中的rewrite指令</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">(如果某段被重写,则重新循环1-3,直到找到真实存在的文件,循环经过10次,就会返回500错误)</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">flag标志位</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">last 相当于Apache 的标记,表示完成rewrite</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">break 终止匹配,匹配完成时,不在匹配后的规则</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">redirect 返回302临时重定向,浏览器跳转栏会显示跳转后的URL地址</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">permanert 返回301 永久重定向,浏览器地址栏会显示跳转后的URL地址</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">last 一般写在server和if 中,而break 一般使用在location 中</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">last 不终止重写后的URL匹配,即新的URL会在从server走一遍匹配流程,而Break终止重写后的匹配</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">break 和last 都能组织继续执行后面的rewrite 命令</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">last 和break 用来实现URL重写,浏览器地址栏URL地址不变</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">redirect 和 permanent 用来实现URL跳转,浏览器地址栏会显示跳转后的URL地址</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp; if 指令与全局变量</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 判断指令</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 语法为 if (condirion) {...},对给定的条件condition进行判断.如果为真,大括号内的rewrite指令将被执行,if条件(condition)可以是如下任何内容</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 直接比较变量和内容是,使用=或!=</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -f 和 !-f&nbsp;&nbsp; 用来判断是否存在文件</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-d 和 !-d&nbsp;&nbsp; 用来判断是否存在目录</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -e 和 !-e&nbsp;&nbsp; 用来判断是否存在文件或目录</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -x 和 !-x&nbsp;&nbsp; 用来判断文件是否可执行</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp; 例如:</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($http_user_agent ~ MSIE)</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewriet ^(.*)$ /msie/$1 break;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果UA包含"MSIE",rewrite请求到/msid/目录下</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($request_method = POST ) {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 405</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果提交方法为POST,则返回状态码405(Method not allowed) retum不能返回301,302(因为返回301,302不能只返回状态吗,还必选有重定向的URL,所以return指令无法返回301,302)</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($slow) {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; limit_rate 10k</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //限速,$slow可通过set指令设置</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!-f $request_filename) {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_pass http://127.0.0.1;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果请求的文件名不存在,则方向代理到localhost.这里的break也是停止rewrite检查</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($args ~ post=140) {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewrite ^ http://example.com/ permanent;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果query stiong中包含"post=140",永久重定向到exampl.com</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;nginx变量</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $arg_PARAMETER 这个变量值为:GET请求中变量名PARAMETER参数的值。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $args 这个变量等于GET请求中的参数。例如,foo=123&amp;bar=blahblah;这个变量只可以被修改</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $binary_remote_addr 二进制码形式的客户端地址。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $body_bytes_sent 传送页面的字节数</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $content_length 请求头中的Content-length字段。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $content_type 请求头中的Content-Type字段。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $cookie_COOKIE cookie COOKIE的值。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $document_root 当前请求在root指令中指定的值。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $document_uri 与$uri相同。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $host 请求中的主机头(Host)字段,如果请求中的主机头不可用或者空,则为处理请求的server名称(处理请求的server的server_name指令的值)。值为小写,不包含端口。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $hostname&nbsp; 机器名使用 gethostname系统调用的值</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $http_HEADER&nbsp;&nbsp; HTTP请求头中的内容,HEADER为HTTP请求中的内容转为小写,-变为_(破折号变为下划线),例如:$http_user_agent(Uaer-Agent的值), $http_referer...;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $sent_http_HEADER&nbsp; HTTP响应头中的内容,HEADER为HTTP响应中的内容转为小写,-变为_(破折号变为下划线),例如: $sent_http_cache_control, $sent_http_content_type...;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $is_args 如果$args设置,值为"?",否则为""。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $limit_rate 这个变量可以限制连接速率。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $nginx_version 当前运行的nginx版本号。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query_string 与$args相同。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $remote_addr 客户端的IP地址。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $remote_port 客户端的端口。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $remote_user 已经经过Auth Basic Module验证的用户名。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request_filename 当前连接请求的文件路径,由root或alias指令与URI请求生成。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request_body 这个变量(0.7.58+)包含请求的主要信息。在使用proxy_pass或fastcgi_pass指令的location中比较有意义。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request_body_file 客户端请求主体信息的临时文件名。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request_completion 如果请求成功,设为"OK";如果请求未完成或者不是一系列请求中最后一部分则设为空。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request_method 这个变量是客户端请求的动作,通常为GET或POST。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 包括0.8.20及之前的版本中,这个变量总为main request中的动作,如果当前请求是一个子请求,并不使用这个当前请求的动作。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request_uri 这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看$uri更改或重写URI。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $scheme 所用的协议,比如http或者是https,比如rewrite ^(.+)$ $scheme://example.com$1 redirect;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $server_addr 服务器地址,在完成一次系统调用后可以确定这个值,如果要绕开系统调用,则必须在listen中指定地址并且使用bind参数。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $server_name 服务器名称。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $server_port 请求到达服务器的端口号。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $server_protocol 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp; .nginx location应用规则</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; 示例:&nbsp;&nbsp; location [=|~|~*|!~|~!~*] /usl/ {...}</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 默认值: no</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用字段: server</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location参数根据URL的不同需求进行配置,可以使用字符串与正则表达式匹配</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location = / {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass http://tomcat_server;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location = / {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #精确匹配/&nbsp; 主机名后面不能带任意字符</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location / {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#因为所有地址都以/开头,所以这条规则将匹配到所有请求,但是正则和最长字符串会优先匹配</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location /documents/ {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #匹配任何以/documets/开头的地址,匹配符合以后,还要继续向下搜索</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #只有后面的正则表达式没有匹配到时,这一条才会采用&nbsp;&nbsp;&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location ~ /documents/Abc {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #匹配/documents/Abc的完整路基,匹配符合以后,还要继续向下匹配</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #只有后面的正则表达式(精确匹配)没有匹配到时,这一条才会采用</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location ^~ /images/ {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #匹配任意以/images/开头的地址,匹配符合以后,停止往下搜索正则,采用这一条</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location ~* \.(gif|jpg|jpeg)$ {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #匹配所有以gif,jpg,jpeg结尾的请求</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #然而,所有请求/images/下的图品会被config D处理,因为^~到达不了这一条</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location /images/ {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #字符匹配到/images/,继续往下,发现^~存在</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location /images/abc {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #最长字符匹配到/images/abc,继续往下,会发行^~存在</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #F与G的放置顺序是没有关系的</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location ~ /images/abc/ {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #只有去掉config D才有效:先最长匹配config G 开头的地址,继续往下搜索,匹配到这一条采用</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp; &nbsp;&nbsp;匹配优先级</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (location =&nbsp; 精确匹配 ) &gt; (location 完整路径 ) &gt; (location ^~ 路径 ) &gt; (location ~,~*正则顺序) &gt; (location 部分起始路径 ) &gt; (location / 通用匹配)</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;URL分析</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://localhost:88/test1/test2/test.php</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $host:localhost</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $server_port:88</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request_uri :&nbsp; http://localhost:88/test1/test2/test.php</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $documenturl : /test1/test2/test.php</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $document_root : /var/www/html</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $request_filename : /var/www/html/test1/test2/test.php</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">实现域名跳转</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; server {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; listen 80</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; server_name www.jd.com</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; charset utf-8</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; root html ;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; index&nbsp;&nbsp; index.html index.htm;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; if ($host = "www.360buy.com") {</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewrite ^(.*)$ http:/www.jd.com/$1 permanent;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; }</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //永久重定向到www.jd.com</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;</span></strong></p>
<p><strong><span style="font-size: 16px; font-family: 楷体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //也可以在location {} // if () 中使用</span></strong></p><br><br>
来源:https://www.cnblogs.com/canflyfish/p/11580469.html
頁: [1]
查看完整版本: Nginx Rewrite域名及资源重定向