兴义市住房和城乡建设局网站,广东建设信息网站首页,校园网站服务建设,设计 p网站目录 rewrite 作用#xff1a; 依赖#xff1a; 打开重定向日志#xff1a; if 判断#xff1a; location {} 本身有反复匹配执行特征 在 location 中加入 break 和 last #xff08;不一样#xff09; 加了break后#xff0c;立刻停止向下 且 跳出。 加了last#xf… 目录 rewrite 作用 依赖 打开重定向日志 if 判断 location {} 本身有反复匹配执行特征 在 location 中加入 break 和 last 不一样 加了break后立刻停止向下 且 跳出。 加了last会停止当前向下后会重头再来一遍。 在 server 中加入 break 和 last 一样 rewrite 作用 域名跳转重定向 URL重写伪静态一长串参数很复杂的链接 跳转 到简介的链接上 动静分离跳转域名然后接入CDN实现加速这种情况较多对于大流量的网站相对鸡肋但对于小网站很实用 依赖 PCRE库 因为要用到正则表达式 ngx_http_rewrite_module 需要编译入的模块 配置 rewrite重定向日志 1 rewrite_log on 2错误日志中 必须开启 notice 记录等级然后rewrite会被写入到error.log中 if 判断 依靠nginx内置非自定义变量 如 $request_method、 request_uri 逻辑判断符号 ~ 匹配正则表达式 ~* 不区分大小写匹配正则表达式 匹配的字符串可以是正则表达式通常不用加引号仅在表达式中有特殊符号 空格、花括号、分号等时用单引号括起来。 限制 请求方式 为post 限制 请求的浏览器 为 MSIE或firefox或spider 当不确定浏览器名时候可以用 ~* 来忽略大小写。 限制 当请求的文件 不存在时候 限制 URL中gid包含9-12个数字 \d 代表数字 {9,12} 代表范围 即当 gid 等于 9至12个数字开头/ 结尾的时候就是符合的。 location {} 本身有反复匹配执行特征 如下当是www.lwjweb.com/1.html 时候会先匹配 location / 里的变为 www.lwjweb.com/3.html —— 出来匹配到 /3.html 变为 www.lwjweb.com/a.html 。 这时候又会从头匹配到 location / 只是进去以后没有对应的rewrite 这时匹配才结束。 server { location / { rewrite /1.html /2.html ; rewrite /2.html /3.html ; } location /3.html { rewrite a.html } } 例 rewrite 一个1.html转2.html 2.html转3.html的例子 多个rewrite会根据上一步结果依次执行 错误日志中可见1.html 匹配到了/1.html 转换为了2.html2.html 匹配到了/2.html 转换为了3.html3.html 最后还再次匹配进了 / 进行了 /1.html 和 /2.html 的对比但是没有匹配成功。break、last 可用来防止反复rewrite在 location 中加入 break 和 last 不一样 加了break后立刻停止向下 且 跳出。
不但这个location不会执行外面的其他location也不会执行就此停止。加了last会停止当前向下后会重头再来一遍。 server { location / { rewrite /1.html /2.html last; rewrite /2.html /3.html ; } location /2.html { rewrite a.html } } #结果是/a.html 当是www.lwjweb.com/1.html 时候会先匹配 location / 里的 /1.html 的变为 www.lwjweb.com/2.html 被 last 打断重头再来再同时匹配到 / 和 /2.html 但因为/2.html 更为准确因此会走 /2.html 变为 www.lwjweb.com/a.html 。 这时候又会从头匹配到 location / 只是进去以后没有对应的rewrite 这时匹配才结束。在 server 中加入 break 和 last 一样不在location中的话2个都不会重复运行。