• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Nginx URL重写rewrite机制原理及使用实例

    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标记说明:

    rewrite参数的标签段位置:

    server,location,if

    例子:

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

    说明:

    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\)

    rewrite 企业应用场景

    Nginx的rewrite功能在企业里应用非常广泛:

    Nginx配置rewrite过程介绍

    (1)创建rewrite语句

    vi conf/vhost/www.abc.com.conf

    #vi编辑虚拟主机配置文件

    文件内容

    server {
        listen 80;
        server_name abc.com;
        rewrite ^/(.*) http://www.abc.com/$1 permanent;
    }
    server {
        listen 80;
        server_name www.abc.com;
        location / {
            root /data/www/www;
            index index.html index.htm;
        }
        error_log  logs/error_www.abc.com.log error;
        access_log  logs/access_www.abc.com.log  main;
    }

    或者

    server {
        listen 80;
        server_name abc.com www.abc.com;
        if ( $host != 'www.abc.com' ) {
            rewrite ^/(.*) http://www.abc.com/$1 permanent;
        }
        location / {
            root /data/www/www;
            index index.html index.htm;
        }
        error_log  logs/error_www.abc.com.log error;
        access_log  logs/access_www.abc.com.log  main;
    }

    (2)重启服务

    确认无误便可重启,操作如下:

    nginx -t

    #结果显示ok和success没问题便可重启

    nginx -s reload

    (3)查看跳转效果

    打开浏览器访问abc.com

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

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:怎么修改Ubuntu的源列表(source list)详解
    下一篇:ubuntu开启SSH服务远程登录操作的实现
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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