灵宝市建设局网站沈阳大东区做网站公司
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:28
当前位置: 首页 > news >正文
灵宝市建设局网站,沈阳大东区做网站公司,万能素材网站下载,WordPress用户自定义头衔一.location 大致可以分为三类#xff1a;
精准匹配#xff1a;location / {…}一般匹配#xff1a;location / {…}正则匹配#xff1a;location ~ / {…}
1.location 常用的匹配规则#xff1a; #xff1a;进行普通字符精确匹配#xff0c;也就是完全匹配。^~
精准匹配location / {…}一般匹配location / {…}正则匹配location ~ / {…}
1.location 常用的匹配规则 进行普通字符精确匹配也就是完全匹配。^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功则不再匹配其它 正则匹配location。~ 区分大小写的匹配。* 不区分大小写的匹配。! 区分大小写的匹配取非。!~* 不区分大小写的匹配取非。
2.location 优先级
首先精确匹配 其次前缀匹配 ^其次是按文件中顺序的正则匹配 或*然后匹配不带任何修饰符的一般前缀匹配最后是交给 / 通用匹配
3.location 示例说明
1location / {} 为精确匹配 / 主机名后面不能带任何字符串比如访问 / 和 /data则 / 匹配/data 不匹配 再比如 location /abc则只匹配/abc /abc/或 /abcd不匹配。若 location /abc则即匹配/abc 、/abcd/ 同时也匹配 /abc/。
2location / {} 因为所有的地址都以 / 开头所以这条规则将匹配到所有请求 比如访问 / 和 /data, 则 / 匹配 /data 也匹配 但后面前缀路径会和最长字符串优先匹配最长匹配
3location /documents/ {} 匹配任何以 /documents/ 开头的地址匹配符合以后还要继续往下搜索其它 location 只有其它 location后面的前缀路径没有匹配到时才会采用这一条
4location /documents/abc {} 匹配任何以 /documents/abc 开头的地址匹配符合以后还要继续往下搜索其它 location 只有其它 location后面的前缀路径没有匹配到时才会采用这一条
5location ^ /images/ {} 匹配任何以 /images/ 开头的地址匹配符合以后停止往下搜索正则采用这一条
6location * .(gif|jpg|jpeg)$ {} 匹配所有以 gif、jpg或jpeg 结尾的请求 然而所有请求 /images/ 下的图片会被 location ^ /images/ 处理因为 ^~ 的优先级更高所以到达不了这一条正则
7location /images/abc {} 最长字符匹配到 /images/abc优先级最低继续往下搜索其它 location会发现 ^~ 和 ~ 存在
8location ~ /images/abc {} 匹配以/images/abc 开头的优先级次之只有去掉 location ^~ /images/ 才会采用这一条
9location /images/abc/1.html {} 匹配/images/abc/1.html 文件如果和正则location ~ /images/abc/1.html 相比正则优先级更高
优先级总结 (location 完整路径) (location ^~ 路径) (location ,* 正则顺序) (location 部分前缀路径) (location /)
4.location 匹配 首先看 优先级精确 前缀^~ 正则,* 一般 通用/ 在没有精准匹配的情况下先看前缀匹配的长度然后根据最长的前缀匹配的优先级去确定是否再去看其它正则匹配location 如果最长的前缀匹配带有 ^~ 则不再看其它正则匹配location如果最长的前缀匹配是没有修饰符的一般匹配则会再看其它正则匹配location 前缀匹配看长度最长的优先匹配 正则匹配看上下顺序由上往下依次匹配当有匹配成功时候停止匹配按当前匹配规则处理请求 只有在精准、前缀、正则、一般 都没有匹配到的时候才会看通用匹配
二.rewrite跳转实现
Nginx通过ngx_http_rewrite_module 模块支持URL重写、支持if条件判断但不支持else跳转从一个 location跳转到另一个location循环最多可以执行10次超过后nginx将返回500错误PCRE支持perl兼容正则表达式的语法规则匹配重写模块 set 指令创建新的变量并设其值
1.rewrite 执行顺序如下
(1) 执行 server 块里面的 rewrite 指令。 (2) 执行 location 匹配。 (3) 执行选定的 location 中的 rewrite 指令。
2.语法格式rewrite [flag];
regex 表示正则匹配规则。replacement 表示跳转后的内容。flag 表示 rewrite 支持的 flag 标记。
3.rewrite 示例
1基于域名的跳转 现在公司旧域名www.kgc.com有业务需求变更需要使用新域名www.benet.com代替但是旧域名不能废除需要跳转到新域名上而且后面的参数保持不变。
vim /usr/local/nginx/conf/nginx.conf
server {listen 80;server_name www.kgc.com; #域名修改 charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log; #日志修改location / {#添加域名重定向if (\(host www.kgc.com){ #\)host为rewrite全局变量代表请求主机头字段或主机名rewrite ^/(.)\( http://www.benet.com/\)1 permanent; #\(1为正则匹配的内容即“域名/”之后的字符串}root html;index index.html index.htm;}
}echo 192.168.247.131 www.kgc.com www.benet.com /etc/hosts
systemctl restart nginx浏览器输入模拟访问 http://www.kgc.com/test/1.html(虽然这个请求内容是不存在的)会跳转到www.benet.com/test/1.html查看元素可以看到返回301实现了永久重定向跳转而且域名后的参数也正常跳转。 2基于客户端 IP 访问跳转
今天公司业务新版本上线要求所有 IP 访问任何内容都显示一个固定维护页面只有公司 IP 192.168.80.10访问正常。
vim /usr/local/nginx/conf/nginx.conf
server {listen 80;server_name www.kgc.com; #域名修改 charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log; #日志修改#设置是否合法的IP标记set \)rewrite true; #设置变量\(rewrite变量值为boole值true#判断是否为合法IPif (\)remote_addr 192.168.80.10){ #当客户端IP为192.168.80.10时将变量值设为false不进行重写set \(rewrite false;}#除了合法IP其它都是非法IP进行重写跳转维护页面if (\)rewrite true){ #当变量值为true时进行重写rewrite (.) /weihu.html; #将域名后边的路径重写成/weihu.html后转发例如www.kgc.com/weihu.html}location /weihu.html {root /var/www/html; #网页返回/var/www/html/weihu.html的内容}location / {root html;index index.html index.htm;}
}mkdir -p /var/www/html/
echo h1We are maintaining now!/h1 /var/www/html/weihu.html
systemctl restart nginx只有 IP 为 192.168.80.10 能正常访问其它地址都是维护页面,如果rewrite (.) /weihu.html; 换成rewrite (.) /weihu.html permanent; 的话若不是 192.168.80.10 的主机访问会使浏览器修改请求访问的 URL 成 http://www.kgc.com/weihu.html 再请求访问这样就会进入一直在 rewrite 的死循环访问请求会一直被重写成 http://www.kgc.com/weihu.html 再请求访问
3基于旧域名跳转到新域名后面加目录
现在访问的是 http://bbs.kgc.com/post/现在需要将这个域名下面的访问都跳转到http://www.kgc.com/bbs/post/
vim /usr/local/nginx/conf/nginx.conf
server {listen 80;server_name bbs.kgc.com www.kgc.com; #域名修改 charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log;#添加location /post {rewrite (.) http://www.kgc.com/bbs$1 permanent; #这里的\(1为位置变量代表/post}location / {root html;index index.html index.htm;}
}mkdir -p /usr/local/nginx/html/bbs/post
echo this is 1.html /usr/local/nginx/html/bbs/post/1.html
echo 192.168.80.10 bbs.kgc.com /etc/hosts
systemctl restart nginx使用浏览器访问 http://bbs.kgc.com/post/1.html 跳转到 http://www.kgc.com/bbs/post/1.html 4基于参数匹配的跳转
现在访问http://www.kgc.com/100-(100|200)-100.html 跳转到http://www.kgc.com页面。
vim /usr/local/nginx/conf/nginx.conf
server {listen 80;server_name www.kgc.com; #域名修改 charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log;if (\)request_uri ~ ^/100-(100|200)-(\d).html$) {rewrite (.) http://www.kgc.com permanent;}location / {root html;index index.html index.htm;}
}systemctl restart nginx使用浏览器访问 http://www.kgc.com/100-200-100.html 或 http://www.kgc.com/100-100-100.html 跳转到http://www.kgc.com页面。 5基于目录下所有 php 结尾的文件跳转
要求访问 http://www.kgc.com/upload/123.php 跳转到首页。
vim /usr/local/nginx/conf/nginx.conf
server {listen 80;server_name www.kgc.com; #域名修改 charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log;location ~ /upload/..php$ {rewrite (.) http://www.kgc.com permanent;}location / {root html;index index.html index.htm;}
}systemctl restart nginx浏览器访问 http://www.kgc.com/upload/123.php 跳转到http://www.kgc.com页面。 6基于最普通一条 url 请求的跳转
要求访问一个具体的页面如 http://www.kgc.com/abc/123.html 跳转到首页
vim /usr/local/nginx/conf/nginx.conf
server {listen 80;server_name www.kgc.com; #域名修改 charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log;location ~ ^/abc/123.html {rewrite (.) http://www.kgc.com permanent;}location / {root html;index index.html index.htm;}
}systemctl restart nginx浏览器访问 http://www.kgc.com/abc/123.html 跳转到http://www.kgc.com页面。
- 上一篇: 临淄网站建设crm客户管理系统设计
- 下一篇: 灵璧做网站公司阿里巴巴最新董事长
相关文章
-
临淄网站建设crm客户管理系统设计
临淄网站建设crm客户管理系统设计
- 技术栈
- 2026年03月21日
-
临淄建设局网站php网站设计人员
临淄建设局网站php网站设计人员
- 技术栈
- 2026年03月21日
-
临漳专业做网站wordpress 投稿者插件
临漳专业做网站wordpress 投稿者插件
- 技术栈
- 2026年03月21日
-
灵璧做网站公司阿里巴巴最新董事长
灵璧做网站公司阿里巴巴最新董事长
- 技术栈
- 2026年03月21日
-
灵川建设局网站网站改版服务
灵川建设局网站网站改版服务
- 技术栈
- 2026年03月21日
-
灵寿网站建设宁波新亚建设内部网站
灵寿网站建设宁波新亚建设内部网站
- 技术栈
- 2026年03月21日
