Nginx URL重写rewrite机制原理及使用实例

Nginx URL重写rewrite机制原理及使用实例,第1张

NginxURL重写rewrite机制原理及使用实例

本文详细介绍了NginxURL重写系统的基本原理和应用案例。原文根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值,朋友们一定要参考。

重写URL有利于URL首选域的定义,对于同一资源页面的几路301重定向有利于URL权重的集中化。

nginxURL重写详细介绍

与apache和其他web服务手机软件一样,rewrite的组角色是完成RUL详细地址的重定向。Nginx的重写功能必须有PCRE手机软件支持,即按照perl兼容的正则表达式语句进行标准搭配。默认设置主要参数的编译器nginx会支持rewrite的控制模块,但也必须得到PCRE的支持。

Rewrite是完成URL重写的一个重要命令。根据regex(正则表达式)的部分,重定向到替换,标志在末尾。

重写英语的语法格式和主要参数如下:

重写<regex><替换>[标志];

关键字用正则表达式替换内容标志

关键字:不能更改关键字error_log。

正则表达式:perl兼容正则表达式语句进行标准搭配。

替换内容:用替换替换常规匹配内容。

Flag:重写支持的标志flag

旗帜表明:

  • 匹配最后一个#TrueNami标准后,再次匹配新的位置URI标准。
  • 破#真娜美的标准搭配停了,不符合以下所有标准。
  • 重定向#回到302临时重定向,信息自动跳转后电脑浏览器会显示URL的详细地址。
  • 永久#回到301永久重定向,信息自动跳转后电脑浏览器地址栏会显示详细的URL地址。
  • 重写主要参数的标识段:

    服务器,位置,如果

    示例:

    重写^/(.*)http://www.czlun.com/永久居民;

    显示:

  • Rewrite是一个固定的关键词,说明rewrite搭配标准刚刚起步。
  • regex的一部分是/(。*),这是一个正则表达式,带有详细的网站域名,下面是详细的地址。
  • 替换的一部分是http://www.czlun.com/,它是从regex的Part()中的内容派生出来的。匹配成功后自动跳转到的URL。
  • 标志的一部分,永久,表示永久301重定向标识,即自动跳转到http://www.czlun.com/.的新的详细地址
  • regex普通正则表达式表明

    标识符

    叙述

    \

    将下面的标识符标识为特殊符号、原始标识符或反向介绍。例如带有换行符的“\n”和带有“$”的“\$”

    [h/]^

    键入搭配字符串数组的开头和结尾。

    $

    键入搭配字符串数组的结尾。

    *

    匹配前面的标识符零次或多次。例如,“ol*”可以与“o”、“ol”和“oll”匹配

    匹配前面的标识符一次或多次。例如,“ol”可以与“ol”和“oll”组合,但不能与“o”组合

    匹配前面的标识符零次或一次,如“do(es)?”可与“do”或“does”连用,“?”相当于“{0,1}”

    匹配除“\n”以外的所有单个标识符。如果要匹配任何包含“\n”的标识符,请使用类似“[的方法。\n]”。

    (模式)

    匹配括号中的模式,并在后面获得匹配的匹配。常见的[46]...特性获取括号中的匹配内容。要匹配括号标识符,您必须\(Content\)。

    重写应用程序字段

    Nginx的重写功能在公司应用广泛:

  • u可以调整客户访问的URL,看起来比较规范,符合开发、设计、商品人员的要求。
  • u为了让百度搜索引擎搜索网站内容和客户体验更强,公司会把动态URL的详细地址装扮成静态地址来呈现服务项目。
  • u网站地址更改为最新域名后,旧的浏览会自动跳转到新的网站域名。比如浏览JD.COM商城的360buy.com会自动跳转到jd.com
  • 根据唯一自变量、文件目录、移动客户端信息内容、URL调整等。
  • Nginx配备重写的全过程详细介绍

    (1)构建重写句子

    viconf/vhost/www.abc.com.conf

    #vi编辑虚拟主机环境变量

    文档内容

    server{ listen80; server_nameabc.com; rewrite^/(.*)http://www.abc.com/$1permanent; } server{ listen80; server_namewww.abc.com; location/{ root/data/www/www; indexindex.htmlindex.htm; } error_loglogs/error_www.abc.com.logerror; access_loglogs/access_www.abc.com.logmain; }

    或者

    server{ listen80; server_nameabc.comwww.abc.com; if($host!='www.abc.com'){ rewrite^/(.*)http://www.abc.com/$1permanent; } location/{ root/data/www/www; indexindex.htmlindex.htm; } error_loglogs/error_www.abc.com.logerror; access_loglogs/access_www.abc.com.logmain; }

    (2)重新启动服务项目

    如果确定正确,可以重启。实际 *** 作如下:

    nginx-t

    #数据显示ok和success重启没有任何问题。

    nginx-s重新加载

    (3)查询自动跳转的实际效果

    打开浏览器浏览abc.com。

    页面打开后,URL地址栏的abc.com变成www.abc.com,表示URL重写成功。

    文章内容就这么多了。期待对大家的学习和训练有所帮助,也期待大家的支持。

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/774390.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存