概述
more conf/fastcgi.conf 相关的内置变量
rewrite功能
使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。rewrite只能放在server{}, location{}, if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如 http://seanlook.com/a/we/index.php?id=1&u=str 只对/a/we/index.php重写。
if中的条件怎么写?
1: = 来判断相等,用于字符串比较
2:~ 用正则来匹配(此处的正则区分大小写)
~* 不区分大小写
3: -f -d -e 来判断是否为文件,为目录,是否存在
rewrite 企业应用场景
1.为了让搜索引擎搜录网站内容及用户体验更好,企业会将动态URL地址伪装成静态地址提供服务。
2.网址换新域名后,让旧的访问跳转到新的域名上。例如,访问京东的360buy.com会跳转到jd.com
rewrite语法格式
及参数
语法格式 rewrite regex replacement [flag];
正则 替代内容 flag标记
参数介绍:
rewrite是关键字
regex是正则表达式
URL是要替代的内容
[flag]是标记位的意思,它有以下几种值:
last: 相当于Apache的[L]标记,表示完成rewrite
break: 终止rewrite,不再继续匹配
redirect: 返回302临时重定向,地址栏会显示跳转后的地址
permanent: 返回301永久重定向,地址栏会显示跳转后的地址
很多情况下,rewrite也会写在location里,默认它们的执行顺序是:
1. 执行server块的rewrite指令
2. 执行location匹配
3. 执行选定的location中的rewrite指令
如果其中某步URI被重写,则重新循环执行1-3,直到找到真实存在的文件;循环超过10次,则返回500 Internal Server Error错误。
if ($http_user_agent ~ MSIE) {
rewrite ^(.*)$ /msie/$1 break;
}
如果UA包含"MSIE",rewrite 请求到 /msid/ 目录下
break 表示 终止rewrite,不再继续匹配
最后
以上就是健壮樱桃为你收集整理的Nginx之详解 rewrite URI重写的全部内容,希望文章能够帮你解决Nginx之详解 rewrite URI重写所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复