首页 > 系统相关 >Nginx URL重写(rewrite)配置及信息详解

Nginx URL重写(rewrite)配置及信息详解

时间:2022-11-30 14:37:49浏览次数:57  
标签:匹配 重定向 rewrite URL Nginx flag url


URL重写有利于网站首选域的确定,对于同一资源页面多条路径的301重定向有助于URL权重的集中

Nginx URL重写(rewrite)介绍

    和apache等web服务软件一样,rewrite的组要功能是实现RUL地址的重定向。Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持

    rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement,结尾是flag标记。

rewrite语法格式及参数语法说明如下:

rewrite    <regex>    <replacement>    [flag];

关键字 正则 替代内容 flag标记



关键字:其中关键字error_log不能改变

正则:perl兼容正则表达式语句进行规则匹配

替代内容:将正则匹配的内容替换成replacement

flag标记:rewrite支持的flag标记



flag标记说明:

last #本条规则匹配完成后,继续向下匹配新的location URI规则

break #本条规则匹配完成即终止,不再匹配后面的任何规则

redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址

permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

rewrite参数的标签段位置:

server,location,if

例子:

rewrite ^/(.*) http://www.czlun.com/$1 permanent;

说明:                                        

rewrite为固定关键字,表示开始进行rewrite匹配规则

regex部分是 ^/(.*) ,这是一个正则表达式,匹配完整的域名和后面的路径地址

replacement部分是http://www.czlun.com/$1 $1,是取自regex部分()里的内容。匹配成功后跳转到的URL。

flag部分 permanent表示永久301重定向标记,即跳转到新的 http://www.czlun.com/$1 地址上

regex 常用正则表达式说明

字符

描述

\

将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用。如“\n”匹配一个换行符,而“\$”则匹配“$”

^

匹配输入字符串的起始位置

$

匹配输入字符串的结束位置

*

匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”

+

匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”、“oll”,但不能匹配“o”

?

匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,"?"等效于"{0,1}"

.

匹配除“\n”之外的任何单个字符,若要匹配包括“\n”在内的任意字符,请使用诸如“[.\n]”之类的模式。

(pattern)

匹配括号内pattern并可以在后面获取对应的匹配,常用$0...$9属性获取小括号中的匹配内容,要匹配圆括号字符需要\(Content\)

location中的rewirte:

不写last和break - 那么流程就是依次执行这些rewrite
1. rewrite break - url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求,地址栏url不变
2. rewrite last - url重写后,马上发起一个新的请求,再次进入server块,重试location匹配,超过10次匹配不到报500错误,地址栏url不变
3. rewrite redirect – 返回302临时重定向,地址栏显示重定向后的url,爬虫不会更新url(因为是临时)
4. rewrite permanent – 返回301永久重定向, 地址栏显示重定向后的url,爬虫更新url

301重定向和302重定向的区别

  302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址,因为服务器返回302,所以,搜索搜索引擎认为新的网址是暂时的。

  而301重定向是永久的重定向,搜索引擎在抓取新的内容的同时也将旧的网址替换为了重定向之后的网址。

 

 

 

 

 

标签:匹配,重定向,rewrite,URL,Nginx,flag,url
From: https://blog.51cto.com/u_14906615/5899426

相关文章

  • Nginx搭建文件下载服务器
    因为自动化测试的时候想通过链接来下载app然后安装,公司的下载是走蒲公英的里边的sign一会儿就会过期,所以决定通过自己搭一个下载服务修改Nginx的配置注意,我的资源放在这......
  • nginx-ingress实现二级目录
    需求说明内网后端地址:http://10.10.246.29:9000如图:外网域名:https://devhtk.ntmaorong.com/要求:https://devhtk.ntmaorong.com/minio/--->访问http://10.10.246.2......
  • Nginx+keepalive 负载均衡
    1 规划和准备两台相同配置的web用途IPMASTER192.168.1.100BACKUP192.1681.1012 安装两台接入服务器分别安装NginX和keepalived:准备依赖包:yum-yinstallgccpcre-devel......
  • Linux- Nginx简单的负载均衡(一)
    这里先进行简单的nginx负载,安装nginx这里就不多说了,我们情景假设在已经安装好了nginx上:1)查询nginx中的upstrea负载均衡模块 默认是有安装的。进入nginx源码目录中./config......
  • Nginx配置详解
    nginx配置文件结构...#全局块events{#events块...}http#http块{...#http全局块server#server块{...#server......
  • 检测到目标url存在http host头攻击漏洞
      修复建议对Host字段进行检测Nginx,修改ngnix.conf文件,在server中指定一个server_name名单,并添加检测。Apache,修改httpd.conf文件,指定ServerName,并开启UseCanonica......
  • nginx安装及部署
    下载https://nginx.org/en/download.html  Windows下安装下载后解压(切记不能含有中文路径!!) 启动两种方法:1)直接双击该目录下的"nginx.exe",即可启动nginx服务器......
  • Nginx12 openresty使用lua-resty-http模块
    1简介在lua中操作http请求有两种方式第一种方式:使用通过ngx.location.capture 去方式实现第二种方式:lua-resty-http,是用于访问外部Http资源,外部web服......
  • nginx的配置
    #usernobody;worker_processes1;error_loglogs/error.loginfo;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.p......
  • pip Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not
      #解决方案 把…\anaconda3\Library\bin加入到系统环境变量即可。总是提示SSL有问题,然而只是SSL就在bin里边,所以没有生效。主要参考:https://github.com/conda/co......