Nginx Rewrit实现网页跳转功能详细步骤

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录一、Nginx Rewrite二、Rewrite功能Rewrite跳转场景Rewrite跳转实现 Nginx跳转pcre支持重写模块Rewrite实际场景Rewrite命令/语法格式flag标记说明location分类location优先级rewrite和location相比三、跳转案例实现域名跳转第一步 修改指定配置文件第二步 检查语法错第三步 有报错进行排错 第四步 添加域名映射关系 第五步 重启服务 第六步 测试结果 旧域名跳转新域名第一步 修改配置文件第二步 添加域名映射关系第三步 重启服务第四步 创建网页执行文件第五步 用浏览器进行测试第六步 处理错误(排错)第七步 重新测试访问基于参数进行匹配跳转第一步 修改配置文件第二步 检查语法错误第三步 重启服务第四步 设置映射关系第五步 用浏览器进行测试基于客户端IP地址访问跳转第一步 修改配置文件第二步 检测文件语法问题第三步 创建网页返回执行文件第四步 重启服务第五步 用浏览器进行访问测试基于目录下PHP文件进行跳转第一步 修改配置文件第二步 检查文件语法问题第三步 重启服务四步 用浏览器进行测试基于普通的RUL进行请求跳转第一步 修改配置文件第二步 检查是否存在语法问题第三步 重启服务第四步 用浏览器进行访问测试

一、Nginx Rewrite

Rewrite主要的功能是实现URL重写,Nginx 的 Rewrite 规则采用 PCRE Perl 兼容正则表达式的语法进行规则匹配,如相使用 Nginx 的 Rewrite 功能,在编译 Nginx 前要编译安装 PCRE 库。Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程。

rewrite和location的功能有点相像,都能实现跳转,主要区别在于rewrite常用于同一域名内更改获取资源的路径,而location是对一类路径做控制访问和反向代理,可以proxy_pass到其他服务器。

Nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。

rewrite只能放在server{},location{},if{}中,

并且只能对域名后边的除去传递的参数外的字符串起作用。

二、Rewrite功能

① Rewrite跳转场景

② Rewrite跳转实现

③ Rewrite实际场景

④ Rewrite正则表达式(用于匹配URL)

⑤ Rewrite命令/语法格式

⑥ location分类

⑦ location优先级

⑧ Rewrite和location做比较

⑨ 根据以上来实现跳转

Rewrite跳转场景

① URL看起来更规范、合理

② 企业会将动态URL地址伪装成静态地址提供服务

③ 网址换新域名后,让旧的访问跳转到新的域名上

④ 服务端某些业务跳转

URL访问跳转, 支持开发设计

① 页面跳转 ② 兼容性支持 ③ 展示效果

SEO优化

维护

① 后台维护 ② 流量转发

安全

① 伪静态页面

Rewrite跳转实现 Nginx

支持URL重写、支持if条件判断

但不支持else的命令执行

跳转

循环最多可以执行10次

超过后nginx将返回500的错误

pcre支持

rewrite使用Nginx全局变量或者自己设置的变量

结合正则表达式和标志位实现URL重写以及重定向

重写模块

set指令

以上全部都基于

ngx_http_rewrite_module模块

Rewrite实际场景

① Nginx跳转需求的实现方式

使用rewrite进行匹配跳转(防盗链)

使用if匹配全局变量后跳转(Nginx自身的全局变量,不是系统的全局变量)

location可以匹配本地重写以及跨服务器跳转

② rewrite放在server{}、if{}、location{}模块段中

location只对域名后边的出去传参的字符串起作用

③对域名或者参数字符串

用if全局变量匹配

使用proxy_pass反向代理

Rewrite是在同一域名内更改获取资源的路径

location本身就是一种路径资源

Rewrite命令/语法格式

命令语法:rewrite [正则] [跳转后的内容] [rewrite支持的flag标记];

flag标记说明

last (相当于Apache的[L]标记,表示完成rewrite)一般用于Server和if当中

break (本条规则匹配完成即终止,不再匹配后面的任何规则)一般用于location

redirect (返回302临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新URL)

permanent (返回301永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫会更新URL)

break和last类似   但break不会重新发起一次处理过程,而是直接返回处理结果

redirect    该标记表示当前规则匹配成功后立即进行重定向操作

permanent    该标记和redirect类似,但是永久重定向

set    标记表示当前规则匹配成功设置一个变量,并把变量传入下一跳规则

location分类

location = [字符串]{}   #精准匹配

location [字符串]{}    #一般匹配

location [字符串]{}    #正则匹配

~   #执行一个正则匹配,区分大小写

~*  #不区分大小写

!~   #区分大小写取反

!~*   #不区分大小写取反

^~   #普通字符匹配,使用前缀匹配,如果匹配成功则不再进行其他匹配

=   #普通字符,精准匹配

@   #定义一个命名的location,使用在内部定义

location优先级

优先匹配精确匹配(=)

其次前缀匹配(^~)

其次再按照文件中顺序的正则匹配(~或者~*)

然后匹配不带任何修饰的前缀匹配(常规字符串匹配)

通用匹配(/)如果没有其他匹配,任何请求都可以符合匹配

执行顺序

精确 > 前缀 > 正则 > 一般 > 通用

优先级相同的情况下,执行顺序由上到下按顺序执行

rewrite和location相比

都可以实现跳转(相同点)

rewrite是在同一个域名内更改获取资源的路径

location是对一类路径做控制访问或者反向代理,还可以proxy_pass到其他机器

rewrite会写在location里(按顺序执行)

执行Server块里面的rewrite指令

执行location匹配

执行选定的location中的rewrite指令

三、跳转案例

实现域名跳转

首先要先关闭防火墙和安全机制

第一步 修改指定配置文件

Nginx Rewrit实现网页跳转功能详细步骤插图

修改指定用户Nginx 

首先要有nginx的程序用户

cat  /etc/passwd   #查看是否有nginx用户,是否是程序用户

Nginx Rewrit实现网页跳转功能详细步骤插图1

修改对应域名(自定义即可)

修改指定的日志文件,后面的main可加可不加

添加域名重定向 

Nginx Rewrit实现网页跳转功能详细步骤插图2

第二步 检查语法错误

保存并退出

nginx -t   #检查是否有语法问题

Nginx Rewrit实现网页跳转功能详细步骤插图3

第三步 有报错进行排错 

这里找不到日志

无法识别到日志格式

接着进入配置文件

Nginx Rewrit实现网页跳转功能详细步骤插图4

再次保存并退出

再次查看是否有错误

Nginx Rewrit实现网页跳转功能详细步骤插图5

手动创建日志文件

并且进行赋权

Nginx Rewrit实现网页跳转功能详细步骤插图6

第四步 添加域名映射关系

修改域名解析

vim /etc/hosts

Nginx Rewrit实现网页跳转功能详细步骤插图7

第五步 重启服务 

重启服务

systemctl restart nginx

Nginx Rewrit实现网页跳转功能详细步骤插图8

第六步 测试结果 

用浏览器进行访问测试

Nginx Rewrit实现网页跳转功能详细步骤插图9

查看网页元素

详细信息的网址和状态码

Nginx Rewrit实现网页跳转功能详细步骤插图10

Nginx Rewrit实现网页跳转功能详细步骤插图11

Nginx Rewrit实现网页跳转功能详细步骤插图12

Nginx Rewrit实现网页跳转功能详细步骤插图13

Nginx Rewrit实现网页跳转功能详细步骤插图14

旧域名跳转新域名

第一步 修改配置文件

Nginx Rewrit实现网页跳转功能详细步骤插图15

第二步 添加域名映射关系

Nginx Rewrit实现网页跳转功能详细步骤插图16

第三步 重启服务

命令:systemctl restart nginx

Nginx Rewrit实现网页跳转功能详细步骤插图17

第四步 创建网页执行文件

Nginx Rewrit实现网页跳转功能详细步骤插图18

第五步 用浏览器进行测试

Nginx Rewrit实现网页跳转功能详细步骤插图19

Nginx Rewrit实现网页跳转功能详细步骤插图20

Nginx Rewrit实现网页跳转功能详细步骤插图21

我们跳转成功

但是网页内没有内容

跳转可以正常跳转但不显示网页内容

第六步 处理错误(排错)

Nginx Rewrit实现网页跳转功能详细步骤插图22

第七步 重新测试访问

Nginx Rewrit实现网页跳转功能详细步骤插图23

Nginx Rewrit实现网页跳转功能详细步骤插图24

基于参数进行匹配跳转

第一步 修改配置文件

Nginx Rewrit实现网页跳转功能详细步骤插图25

第二步 检查语法错误

命令:nginx -t

Nginx Rewrit实现网页跳转功能详细步骤插图26

第三步 重启服务

命令:systemctl restart nginx

Nginx Rewrit实现网页跳转功能详细步骤插图27

第四步 设置映射关系

命令:vim  /etc/hosts

Nginx Rewrit实现网页跳转功能详细步骤插图28

第五步 用浏览器进行测试

Nginx Rewrit实现网页跳转功能详细步骤插图29

Nginx Rewrit实现网页跳转功能详细步骤插图30

基于客户端IP地址访问跳转

第一步 修改配置文件

Nginx Rewrit实现网页跳转功能详细步骤插图31

第二步 检测文件语法问题

命令:nginx -t

Nginx Rewrit实现网页跳转功能详细步骤插图32

第三步 创建网页返回执行文件

Nginx Rewrit实现网页跳转功能详细步骤插图33

第四步 重启服务

命令:systemctl restart nginx

Nginx Rewrit实现网页跳转功能详细步骤插图34

第五步 用浏览器进行访问测试

Nginx Rewrit实现网页跳转功能详细步骤插图35

Nginx Rewrit实现网页跳转功能详细步骤插图36

基于目录下PHP文件进行跳转

第一步 修改配置文件

Nginx Rewrit实现网页跳转功能详细步骤插图37

第二步 检查文件语法问题

命令:nginx -t

Nginx Rewrit实现网页跳转功能详细步骤插图38

第三步 重启服务

命令:systemctl restart nginx

Nginx Rewrit实现网页跳转功能详细步骤插图39

第四步 用浏览器进行测试

Nginx Rewrit实现网页跳转功能详细步骤插图40

Nginx Rewrit实现网页跳转功能详细步骤插图41

基于普通的RUL进行请求跳转

第一步 修改配置文件

Nginx Rewrit实现网页跳转功能详细步骤插图42

第二步 检查是否存在语法问题

命令:nginx -t

Nginx Rewrit实现网页跳转功能详细步骤插图43

第三步 重启服务

命令:systemctl restart nginx

Nginx Rewrit实现网页跳转功能详细步骤插图44

第四步 用浏览器进行访问测试

Nginx Rewrit实现网页跳转功能详细步骤插图45

Nginx Rewrit实现网页跳转功能详细步骤插图46


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容