当前位置: 首页 > news >正文

陕西建站知名网站开发企业

陕西建站,知名网站开发企业,做农产品交易网站有哪些,如何用wordpress做网页如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 我们访问一个网页的时候会遇到一些奇形怪状的url地址,想优化一下,看着顺眼一点,或者打开一个短视频软件想摸鱼刷一会视频,在打开界面的时候无意间按到…

  如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情

        我们访问一个网页的时候会遇到一些奇形怪状的url地址,想优化一下,看着顺眼一点,或者打开一个短视频软件想摸鱼刷一会视频,在打开界面的时候无意间按到了某个位置,欻就跳转到了某东,看着小小说,无意间点到了广告一下就跳过去了,那这个是怎么实现的呢,就用到了今天介绍的——rewrite。

目录

一、rewrite的概念及作用

二、rewrite跳转标记

1、last和break

​编辑

​编辑

2、临时跳转和永久跳转

三、rewrite跳转案例

1、资源跳转

2、后向引用

3、redirect跳转

四、返回错误页面

💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!

👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!

🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!

一、rewrite的概念及作用

1. 基本概念rewrite 功能允许根据特定的规则对客户端请求的 URL 进行修改,然后按照新的 URL 来处理请求。这在很多场景下都有重要作用,比如实现 URL 美化、网站页面迁移后进行旧链接重定向、根据不同条件将请求导向不同的后端服务等。2. 配置语法rewrite 指令的基本语法格式如下:rewrite <regex> <replacement> [flag];<regex>(正则表达式):用于匹配客户端请求的 URL。例如,^/oldpage/(.*)$ 可以匹配以 /oldpage/ 开头的 URL,其中 (.*) 用于捕获后续的字符内容,以便后续在替换字符串中使用。<replacement>:是匹配成功后要替换成的新 URL 内容。比如,如果想把匹配到的 /oldpage/ 相关 URL 重定向到新页面 /newpage/,可以写成 /newpage/$1,这里的 $1 就是引用前面正则表达式中捕获到的内容。[flag](标志位):是可选参数,常用的标志位有以下几种:last:停止当前这一轮的 Nginx 配置中的后续指令处理,重新发起一个对新 URL 的请求查找匹配的 location 等配置块进行处理。break:停止当前这一轮的 Nginx 配置中的后续指令处理,直接使用当前的重写后的 URL 进行后续请求处理,不再重新发起查找等操作。redirect:返回一个临时的 302 重定向给客户端,让客户端去请求新的 URL。permanent:返回一个永久的 301 重定向给客户端,告知客户端资源已永久性迁移到新的 URL 地址,搜索引擎等会根据此更新索引。3. 应用场景URL 美化:例如,将原本带有参数的动态 URL(如 example.com/article.php?id=123)重写成更简洁美观的静态形式(如 example.com/articles/123.html),提升用户体验以及利于搜索引擎优化(SEO)。网站迁移重定向:当网站的页面结构发生变化,旧的页面链接需要指向新的对应页面时,通过 rewrite 可以方便地将旧链接重定向到新的正确链接,避免出现 404 页面,保证用户访问的连贯性和搜索引擎排名不受太大影响。比如原网站的产品页面从 /product?id=1 迁移到了 /products/1,就可以用 rewrite 规则进行重定向。后端服务代理区分:根据请求 URL 的不同特征,利用 rewrite 可以将请求转发到不同的后端服务器群组或者应用服务上。比如,将以 /api/v1 开头的请求转发到一个版本的 API 服务器,而 /api/v2 开头的请求转发到另一个版本的 API 服务器,通过 rewrite 匹配 URL 后修改转发的目标地址来实现。4. 注意事项正则表达式编写要准确,否则可能导致匹配不准确,无法正确重写 URL 或者出现意外的重写情况。合理选择标志位,不同的标志位决定了后续 Nginx 处理请求的流程以及客户端收到的响应形式,使用不当可能会造成循环重定向等问题。测试 rewrite 规则时,要全面检查各种可能的请求情况,确保重写后的 URL 能够被正确处理,不会影响网站的正常运行和用户访问体验。
​Nginx 的 rewrite 功能为网站的 URL 管理、请求转发等方面提供了灵活且高效的解决方案,合理运用它能提升网站的性能、用户体验以及维护的便利性。

二、rewrite跳转标记

1、last和break

[root@web01 conf.d]#cat rewrite.conf 
server {listen 80;server_name test.yunzhongzi.com;root /code/test/;location / {rewrite /1.html /2.html break;    #break 或者lastrewrite /2.html /3.html; }location /2.html {rewrite /2.html /a.html;}location /3.html {rewrite /3.html /b.html;}}
#文件内容:1.html:空2.html:2.html……3.html:3.html……a.html:aaaaaaa……b.html:bbbbbbb……
#文件寻找顺序:访问test.yunzhongzi.com/1.html 跳转到2.html,2跳转3.html,3.html跳转b.html
last 含义:  停止向后匹配,重新对2.html发起请求#三个locartion之间互不影响,在第一个location上写last就是1.html指向2.html指向a.html
break含义:  停止向后匹配,获取2.html中的内容返回给用户,不会重新发起请求。#写入break,1.html跳转2.html,不在向下跳转2.html的内容
​

2、临时跳转和永久跳转

 302 临时跳转: 每次都要请求源站,然后源站返回新的站点给用户,如果源站挂了,无法访问!
使用return 302 http://www.baidu.com 和 rewrite最后的标记 redirect 是一样的功能,都是临时跳转。
[root@web01 conf.d]#cat rewrite.conf 
server {listen 80;server_name test.yunzhongzi.com;root /code;location /test {rewrite ^(.*)$  http://www.baidu.com redirect;#rewrite ^(.*)$  http://www.yunzhongzi.com permanent;#return 301 http://www.yunzhongzi.com;#return 302 http://www.baidu.com;}
}
301永久跳转: 只第一次访问源站,第一次往后,直接访问新的站点。
使用return 301 http://www.baidu.com; 和在rewirte后面写premanent相同的含义。
[root@web01 conf.d]#cat rewrite.conf 
server {listen 80;server_name test.yunzhongzi.com;root /code;location /test {#rewrite ^(.*)$  http://www.baidu.com redirect;rewrite ^(.*)$  http://www.baidu.com permanent;#return 301 http://www.yunzhongzi.com;#return 302 http://www.baidu.com;}
}

三、rewrite跳转案例

1、资源跳转

用户访问test.yunzhongzi.com/abc ----->/code/ccc/bbb/2.html
[root@web01 conf.d]#vim rewrite.conf 
server {listen 80;server_name test.yunzhongzi.com;location / {root /code;index index.html;}location /abc {rewrite ^(.*)$ /ccc/bbb/2.html redirect;#return 302 /ccc/bbb/2.html;}}
[root@web01 conf.d]#mkdir /code/ccc/bbb/ -p
[root@web01 conf.d]#echo /code/ccc/bbb/2.html.... > /code/ccc/bbb/2.html
​

2、后向引用

通过后项引用,调用用户输入的路径
用户访问的test.yunzhongzi.com/2018/aaa/index.html ----->/code/2014/aaa/index.html[root@web01 conf.d]#cat rewrite.conf 
server {listen 80;server_name test.yunzhongzi.com;location / {root /code;index index.html;}location /2018 {rewrite ^/2018/(.*)$ /2014/$1 redirect;}}[root@web01 conf.d]#mkdir /code/2014[root@web01 conf.d]#mkdir /code/2014/aaa[root@web01 conf.d]#echo aaaaaaaaa > /code/2014/aaa/index.html[root@web01 conf.d]#systemctl restart nginx

3、redirect跳转

案例3. 用户访问test.yunzhongzi.com/course-11-22-33.html ------>/code/course/11/22/33/course_33.html[root@web01 conf.d]#cat rewrite.conf 
server {listen 80;server_name test.yunzhongzi.com;root /code;index index.html;location / {#灵活配法rewrite ^/course-(.*)-(.*)-(.*).html$ /course/$1/$2/$3/course_$3.html redirect;#固定配法#rewrite ^/course-(.*) /course/11/22/33/course_33.html redirect;}}
[root@web01 conf.d]#systemctl restart nginx
[root@web01 test]#mkdir -p /code/course/11/22/33/
[root@web01 test]#echo "<h1>/code/course/11/22/33/course_33.html</h1>" > /code/course/11/22/33/course_33.html 

四、返回错误页面

[root@web01 conf.d]#cat rewrite.conf 
server {listen 80;server_name test.yunzhongzi.com;root /code;index index.html;location / {#灵活配法#rewrite ^/course-(.*)-(.*)-(.*).html$ /course/$1/$2/$3/course_$3.html redirect;#固定配法rewrite ^/course-(.*) /course/11/22/33/course_33.html redirect;}error_page 403 404 500 501 502 @error_test;location @error_test {rewrite ^(.*)$ /404.html break;}
}
#案例2.客户端IP地址为10.0.0.1访问test.yunzhongzi.com时,自动在请求行后面加上参数&showoffline=1
[root@web01 conf.d]#cat rewrite.conf 
server {listen 80;server_name test.yunzhongzi.com;# $args为Nginx内置变量请求行的参数set $args "&showoffline=1";location / {root /code;index index.html;}if ($remote_addr = 10.0.0.1 ){rewrite (.*) http://test.yunzhongzi.com$1;}
}
案例3.通过变量指定返回给用户的页面
[root@web01 conf.d]#cat rewrite.conf 
server {listen 80;server_name test.yunzhongzi.com;root /code/test;charset utf-8,gbk;location / {index index.html;set $ip 0;       #设置变量为0if ($remote_addr = "10.0.0.2"){set $ip 1;   #如果来源IP为0.1则设置为1}if ($ip = 0){    
# 判断如果变量为0 则跳转维护页面
rewrite ^(.*)$ /wh.html break;}}}[root@web01 conf.d]# nginx -t[root@web01 conf.d]# systemctl restart nginx[root@web01 conf.d]#echo 游戏页面维护中... > /code/test/wh.html

今天的rewrite就介绍到这里,明天介绍https加密访问~~~


想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~ 

http://www.yayakq.cn/news/627223/

相关文章:

  • 把自己做的网站放到网上去app拉新推广项目
  • A00网站建设长沙有做网站的吗
  • 网站设计怎么做链接阿里云建网站步骤
  • 河北专业做网站大连是哪个省
  • 上海企业网站优化建设一个电子商务网站的基本步骤
  • 网站seo是什么建设英文网站费用
  • 试析媒体网站品牌建设网站宣传制作
  • 房产网站门户系统电子商务网站建设及推广方案
  • 模板建站影响网站的优化排名前端微信小程序开发
  • 网站设计板块网站上怎么做企业推广
  • 百度商城网站建设为什么python不适合开发网站
  • 什么是网站的权重保定网站电话
  • 湖州网站开发时彩网站开发亿
  • iframe框架做网站微信网站开发教程
  • oa网站建设价格优秀网站设计案例分析ppt
  • 微网站设计方案开发游戏软件公司
  • 用照片做视频的网站重庆建设工程招标
  • 聚美优品的网站建设状况网站怎么生成二维码
  • 柬埔寨做网站网页设计与制作教程第6版答案
  • 优化网站关键词网站怎么做分类聚合
  • 湘潭网站建站公司正保建筑工程网
  • 做搜狗pc网站快速安徽省建设工程八大员报名网站
  • 乐居房产官方网站wordpress企业mip模板
  • 比较好的免费网站广渠路网站建设优易建站终身用
  • 各网站的风格及特点网站移动转换
  • 代做网站的公司有哪些设计网站的结构时
  • wordpress 企业站点开发公司终止函内容
  • 潍坊市建设工程质量安全监督站网站网站专题欣赏
  • 如何自做自己的网站织梦网站怎么做伪静态
  • 网站有版权吗商城入口