Nginx的rewrite跳转

1、修改host文件设置nginx虚拟站点
1)修改host文件
[root@centos01 ~]# cat /etc/hosts
192.168.100.10 www.benet.com www.benet.com.en www.benet.com.zh
2)配置nginx添加虚拟主机
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.100.10:80;
server_name www.benet.com;
location / {
root /code/;
index index.html;
}
}
server {
listen 192.168.100.10:80;
server_name www.benet.com.zh www.benet.com.en;
location / {
if ( $http_host ~* “zh”) {
set l a n g u a g e z h ; r e w r i t e / language zh; rewrite ^/ languagezh;rewrite/ http://www.benet.com/$language redirect;
}
if ( $http_host ~* “en”) {
set l a n g u a g e e n ; r e w r i t e / language en; rewrite ^/ languageen;rewrite/ http://www.benet.com/$language redirect;
}
}
}
3)创建虚拟站点根目录
[root@centos01 ~]# mkdir /code/
4)创建两个虚拟站点根目录
[root@centos01 ~]# mkdir /code/en/
[root@centos01 ~]# mkdir /code/zh
[root@centos01 ~]# echo “en” > /code/en/index.html
[root@centos01 ~]# echo “zh” > /code/zh/index.html
2、当用户用户网址http://www.benet.com/test给用户返回提示
1)修改主配置文件
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.100.10:80;
server_name www.benet.com;
location / {
default_type text/html;
if ( $request_uri ~* “^/test”) {
#return 200 “hello!!!”;
return 302 http://www.accp.com;
}
}
}
2)验证www.benet.com/test
输入test返回helloo
输入test访问www.accp.com
3、地址重写的类型
1)重写的类型
标记 说 明
last 相当于Apache的[L]标记,表示完成rewrite
break 本条规则匹配完成即终止,不再匹配后面的任何规则
redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址,爬虫不会更新url
permanent 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址,爬虫更新url
2)网站根目录写入测试数据
[root@centos01 ~]# echo “1.html” > /code/1.html
[root@centos01 ~]# echo “2.html” > /code/2.html
[root@centos01 ~]# echo “3.html” > /code/3.html
[root@centos01 ~]# echo “a.html” > /code/a.html
[root@centos01 ~]# echo “b.html” > /code/b.html
3)修改主配置文件
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.100.10:80;
server_name www.benet.com;
root /code;
location / {
rewrite /1.html /2.html;
rewrite /2.html /3.html;
}
location /2.html {
rewrite /2.html /a.html;
}
location /3.html {
rewrite /3.html /b.html;
}

    }

4)客户端端验证访问
http://www.benet.com/1.html最终被跳转到b.html
5)配置停止跳转
[root@centos01 code]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.100.10:80;
server_name www.benet.com;
root /code;

            location / {
                    rewrite /1.html /2.html break;
                    rewrite /2.html /3.html;
            }
            location /2.html {
                    rewrite /2.html /a.html;
            }
            location /3.html {
                    rewrite /3.html /b.html;
            }
      }

6)客户端验证
http://www.benet.com/1.html将被跳转到2.html停止
4、last的应用
1)修改nginx配置文件
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.100.10:80;
server_name www.benet.com;
root /code;

            location / {
                    rewrite /1.html /2.html last;
                    rewrite /2.html /3.html;
            }
            location /2.html {
                    rewrite /2.html /a.html;
            }
            location /3.html {
                    rewrite /3.html /b.html;
            }
      }

2)客户端访问
www.bene.com/1.html停止在a.html
5、配置用户输入bbs.benet.com/test/1/index.php跳转到www.benet.com/test/1/index.php
1)修改nginx主配置文件
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.100.10:80;
server_name www.benet.com;
location / {
root /code/;
index index.html index.php;
}
}
server {
listen 192.168.100.10:80;
server_name bbs.benet.com;
location /test/1/ {
root /bbs/;
index index.html;
if ($host = ‘bbs.benet.com’) {
rewrite (.+) http://www.benet.com/$1 permanent;
}
}
}
2)设置网站测试
[root@centos01 ~]# mkdir /bbs/test/1/
[root@centos01 ~]# echo “bbs.benet.com.php” > /bbs/test/1/index.php
[root@centos01 ~]# mkdir /code/test/1/
[root@centos01 ~]# echo “www.benet.com.index.php” > /code/test/1/index.php
3)用户输入访问数据库
http://bbs.benet.com//test/1/index.php
4)验证跳转到特定网站
在这里插入图片描述
6、配置参数跳转www.benet.com/ 100-200-100.htm跳转到www.benet.com网站主页
1)修改nginx主配置
server {
listen 192.168.100.10:80;
server_name www.benet.com;
location / {
root /code/;
index index.html index.php;
if ( r e q u e s t u r i   / 100 − 200 − 100. h t m l request_uri ~ ^/100-200-100.html requesturi /100200100.html ) {
rewrite (.) http://www.benet.com permanent;
}
}
}
2)设置访问页面
[root@centos01 ~]# echo “test” > /code/100-200-100.html
3)客户端访问测试
http://www.benet.com/100-200-100.html
4)跳转到www.benet.com主页
在这里插入图片描述
7、配置客户端输入www.benet.com/upload/index.php访问www.benet.com主页
1)修改nginx主配置文件
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.100.10:80;
server_name www.benet.com;
location / {
root /code/;
index index.html index.php;
}
location ~
/upload/.*.php$ {
rewrite (.+) http://www.benet.com permanent;
}

}
2)设置网页根目录
[root@centos01 ~]# mkdir /code/upload/
[root@centos01 ~]# echo “www.benet.com.php” > /code/upload/index.php
3)客户端输入域名访问
www.benet.com/upload/index.php
4)跳转到网站主页
在这里插入图片描述
8、访问www.benet.com/1/index.html跳转到首页
1)修改nginx主配置文件
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.100.10:80;
server_name www.benet.com;
location / {
root /code/;
index index.html index.php;
}
location ~* ^/1/test.html {
rewrite (.+) http://www.benet.com permanent;
}
2)创建网站根目录
[root@centos01 ~]# mkdir /code/1/
[root@centos01 ~]# echo “test” > /code/1/test.html
3)客户端访问
http://www.benet.com/1/test.html
4)跳转到www.benet.com首页
在这里插入图片描述
9、允许特定IP地址访问nginx其他任何IP地址访问报错
1)修改nginx主配置文件
[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.100.10:80;
server_name www.benet.com;
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.80”){
set KaTeX parse error: Expected 'EOF', got '}' at position 26: …lse; }̲ …rewrite = true){
rewrite (.+) /error.html;
}
location = /error.html {
root /error/;
}

}
}
2)创建错误也网站根目录
[root@centos01 ~]# mkdir /error/
[root@centos01 ~]# echo “error” > /error/error.html
3)用允许192.168.100.80 的IP地址访问网站
在这里插入图片描述
4)非IP地址192.168.100.80访问
在这里插入图片描述
测试成功!
感谢观看!拜拜ヾ(•ω•`)o啊😊😀😁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值