ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

简述location规则优先级-实现域名跳转-不同语言-终端跳转-错误页面返回首页-腾讯公益首页

2020-10-11 20:31:54  阅读:165  来源: 互联网

标签:index www 匹配 rewrite html location 跳转 com 首页


1、简述location的常见规则优先级,并且逐个验证;
 =  :精确匹配(必须全部相等)       #精准匹配优先级最高
 ~  :大小写敏感(正则表达式)       #一般使用~*忽略大小写匹配 (正则表达式 有上下区分,上优先匹配,下后匹配)
 ~* :忽略大小写(正则表达式),这里要注意忽略大小写的意思是请求的字符大小写都可以, 但是不会进行大小转换,请求的大小写对应的文件必须存在。
 ^~ :只需匹配uri部分                        #有该匹配规则时将会忽略正则表达式(=  / ~)
 @  :内部服务跳转

 

重新加载nginx进行测试:
/usr/local/nginx/sbin/nginx -s reload

 

 

精准匹配:

= : 一般是匹配某个具体文件。

 

 

创建test该目录及目录下的文件:
mkdir -p /usr/local/nginx/html/test

echo "this is test new index.html" >/usr/local/nginx/html/test/index.html
web页面测试效果:

 

 

大小写敏感匹配:

~ :大小写敏感 (正则表达式)

 

 

 

 

 

 

大小写不敏感匹配:

~* : 大小写忽略 (正则表达式)

 

 

# 则会忽略 uri 部分的大小写 
#curl 192.168.1.12/jfedu.jpg  [成功] 可以成功匹配,但是目录中要jfedu.jpg文 件
#curl 192.168.1.12/JFEDU.jpg  [成功] 可以成功匹配,但是目录中要JFEDU.jpg文 件 
以上仅仅是echo 打印测试: 在真实环境需要改文件或者图片
忽略正则匹配:

^~ : 只匹配以uri开头, 匹配成功以后, 会停止搜索后面的正则表达式匹配。

 

 

重启加载Nginx服务
/usr/local/nginx/sbin/nginx -s reload

 

 

2、实现不同终端访问不同域名的跳转,其中如果时ie浏览器访问,则提示浏览器不兼容,建议 更换charome浏览器继续访问: rewrite规则: nginx的rewrite功能需要pcrer软件支持,即通过perl兼容正则表达式语句进行匹配的。 默认参数编译nginx就会支持rewrite的模块,但是也必须要pcre的支持。 rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacemen   rewrite语法:
rewrite               <regex>        <replacement>        [flag];
   正则            替代内容               flag标记

正则:perl兼容正则表达式语句进行规则匹配
替代内容:将正则匹配的内容替换成replacement
flag标记:rewrite支持的flag标记

#flag标记说明:
last               #本条规则匹配完成终止当前location的规则,继续向下匹配新的location URI规则
break            #本条规则匹配完成即终止, 不再匹配后面的任何规则
redirect         #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent    #返回301永久重定向, 浏览器地址栏会显示跳转后的URL地址
  rewrite实例:

实现域名跳转

方法一:

    server {
        listen   80;
        server_name www.lutixia.com;
        rewrite ^/(.*)$ http://www.fdd1.com/$1 permanent;
    }
    server {
        listen   80;
        server_name www.fdd1.com;
        location / {
            root  /data/www;
            index index.html index.htm
        }
    }
需要创建或者确保/date/www/有index.html文件:

web访问效果:

访问lutixia.com会自动跳转到www.fdd1.com该域名:

 

curl 测试
curl -lv  www.fdd1.com
curl -lv  www.lutixia.com
curl -lv  lutixia.com
方法二: ps: web测试与方法一 一样的效果 (这里不在做测试)

    server {
        listen   80;
        server_name www.fdd1.com www.lutixia.com ;
        if ( $host != 'www.fdd1.com' ) {
            rewrite ^/(.*)$ http://www.fdd1.com/$1 permanent;
        }
    location / {
        root   /data/www;
        index index.html index.htm;
    }
    }

 

实现浏览器的语言跳转:
    server {
        listen     80;
        server_name www.fdd1.com  lutixia.com;
        root  /data/www;
        index index.html index.htm;
        
        charset utf-8;
        if ( $http_accept_language ~ "zh" ) {
            rewrite ^/$ /zh;
        }
       if ( $http_accept_language ~ "en" ) {
           rewrite ^/$ /en;
       }
    }
创建目录及文件:

mkdir -p /data/www/zh en
echo "this is 中文 " >/data/www/zh/index.html
echo "this is English" >/data/www/ch/index.html

  

 

web页面测试 当浏览器设置语言为中文时目录将会自动切换zh(中文目录)

 

 

当浏览器切换英文时将会自动切换英文目录 en

 

 

 

 

实现不同终端跳转: 实现错误页面返回首页:

开启此模块,

设置如下: 
    error_page 404 =200     /index.html;

 

 

 

实现错误页面返回腾讯公益首页:

 

在发布目录下创建404.html文件,并且写入以下代码 : /usr/local/nginx/html/404.html
<!DOCTYPE HTML> 
<html> 
<head>
   <meta charset="UTF-8" />
   <title>公益404</title> 
</head> 
<body> 
<!--<script type="text/javascript" 
src="http://www.qq.com/404/search_children.js"></script>-->

<script type="text/javascript" 
src="//qzonestyle.gtimg.cn/qzone/hybrid/app/404/search_children.js" 
charset="utf-8"></script>

</body> 
</html>

 

 

标签:index,www,匹配,rewrite,html,location,跳转,com,首页
来源: https://www.cnblogs.com/fengyuanfei/p/13799104.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有