当前位置:   article > 正文

Nginx的rewrite跳转_nginx 根目录跳转

nginx 根目录跳转

Nginx的rewrite跳转

一.Nginx跳转
1.跳转的作用和特点
1)跳转的作用
方便管理员对网站进行临时维护
2)Nginx跳转的特点
支持网站重定向
方便业务调整
方便故障维护
2.Nginx跳转实现的方式
1)rewrite进行匹配跳转
根据用户输入的内容匹配正则表达式进行跳转
2)使用if匹配全局变量后跳转
使用条件判断,满足条件进行跳转
3)使用location匹配在跳转
用户访问nginx网站根目录匹配正则表达式后跳转
3.配置跳转所在的位置
1)rewrite应用的位置
在Nginx配置文件的Server{}中
2)if判断
保存在Nginx配置文件网站根目录
if{}
3)Location
卸载nginx配置文件中的虚拟主机根中
4.正则表达式元字符类型
1)^ 匹配字符串开始位置
$ 匹配字符串结束位置

  • 匹配前边字符零次或者多次
  • 匹配前边字符一次或者多次
    ? 匹配前边字符零次或者一次
    . 匹配除\n之外的任何一个单字符
    \ 转意字符
    \d 匹配数字
    [c] 匹配单个字符
    [a-zA-Z] 匹配小写和大写到a-z任意字符
    5.rewrite语法和标记方式
    1)rewrite的语法
    rewrite [正则表达式] [跳转内容] [flag标记]
    2)flag标记的类型
    last:匹配使用rewrite跳转
    break:匹配即停止,匹配以后不再往下检查正则表达式
    redirect:使用302临时跳转,浏览器显示跳转后网址
    permanent:使用301永久跳转,浏览器显示跳转后网址
    6.location类型和正则表达式
    1)location类型
    Location = patt{} [精准匹配]
    Location patt{} [一般匹配]
    Location ~ patt{} [正则表达式匹配]
    2)正则表达式匹配
    ^~:普通字符匹配,使用前缀匹配,匹配以后不再匹配其他location
    =:精准匹配,完全匹配
    @:定义命名location,使用在内部定向时
    3)正则表达式优先级
    精准匹配
    ^~普通字符匹配
    正则表达式
    常规字符串匹配类型,按前缀匹配
    通用匹配(/),没有匹配到通用匹配中
    7.rewrite跳转和location
    1)rewrite
    适合网站内部进行跳转
    2)Location
    适合两台网站服务器之间配置跳转
    先安装Nginx
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    给一个域名捆绑两个地址
    在这里插入图片描述
    二.配置跳转
    1.基本域名跳转
    1)修改nginx
    [root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
    server {
    listen 80;
    server_name www.benet.com;
    charset utf8;
    #access_log logs/host.access.log main;
    location / {
    root html;
    index index.html index.htm;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
    }
    server {
    listen 192.168.100.10:80;
    server_name bbs.benet.com;
    location / {
    if (KaTeX parse error: Expected '}', got 'EOF' at end of input: … rewrite ^/(.*)http://www.benet.com/KaTeX parse error: Expected 'EOF', got '}' at position 14: 1 permanent; }̲ } } ![在这里插入图片描…request_uri ~ ^/*.htmlKaTeX parse error: Expected '}', got 'EOF' at end of input: … rewrite ^/(.*)http://www.benet.com/$1 permanent;
    }}}}
    在这里插入图片描述
    2.创建虚拟机主机网站根目录
    [root@centos01 ~]# mkdir /code/
    [root@centos01 ~]# echo “www.benet.com” > /code/index.html
    3)客户端验证跳转到nginx默认网站主页
    http://www.benet.com/index.html
    3.配置网站升级管理员IP地址192.168.100.50可以访问其他人访问报错
    1)修改nginx主配置文件
    [root@centos01 ~]# echo “www.benet.com” > /code/index.html
    server {
    listen 80;
    server_name www.benet.com;
    charset utf8;
    #access_log logs/host.access.log main;
    location / {
    root /code/;
    index index.html error.html;
    set r e w r i t e t r u e ; i f ( rewrite true; if ( rewritetrue;if(remote_addr = “192.168.100.50”) {
    set KaTeX parse error: Expected 'EOF', got '}' at position 23: … false; }̲ if (rewrite = true) {
    rewrite (.+) /error.html;
    }
    location = /error.html {
    root /error/;
    }
    }
    } }

2)创建错误页面
[root@centos01 ~]# mkdir /error
[root@centos01 ~]# echo “www.error.com” > /error/error.html
失败页面
在这里插入图片描述
成功页面
在这里插入图片描述
3)客户端访问测试
www.benet.com
4.当用户访问www.benet.com/upload/index.php跳转到www.accp.com域名的主页上
1)修改nginx主配置文件
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.benet.com;
charset utf8;
#access_log logs/host.access.log main;
location / {
root /code/;
index index.html index.php;
}
location ~* /upload/.*.php$ {
rewrite (.+) http://www.accp.com/ permanent;
}}
server {
listen 80;
server_name www.accp.com;
location / {
root /accp/;
index index.html;
}}}
2)创建benet.com目录
[root@centos01 ~]# mkdir /code/upload/
[root@centos01 ~]# echo “www.benet.com.php” > /code/upload/index.php
3)创建accp.com目录
[root@centos01 ~]# mkdir /accp
[root@centos01 ~]# echo “www.accp.com” > /accp/index.html
修改hosts文件
在这里插入图片描述
4)客户端访问
http://www.benet.com/upload/index.php
测试页面
在这里插入图片描述
在这里插入图片描述
测试成功!
感谢观看!拜拜ヾ(•ω•`)o啊

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/506171
推荐阅读
相关标签