nginx 深度学习06 - Rewrite

  • URL访问跳转,支持开发设计
  • SEO优化
  • 维护 后台维护、流量转发
  • 安全

正则表达式:

pcretest   吊起正则表达式匹配的命令行

Rewrite的类型

last 停止Rewrite检测
break 停止Rewrite检测
redirect 返回302临时重定向,地址会显示跳转后的地址
permanent 返回301临时重定向,地址会显示跳转后的地址

last和break的区别:last在没有匹配的情况下,开启第二次匹配,break匹配一次停止匹配了。

server {
    listen       80;
    server_name  www.stark.com;
    index index.php index.html index.htm;
    root /usr/local/var/www/stark;

    location ~ ^/break {
            rewrite ^/break  /test/ break;
    }

    location ~ ^/last {
            rewrite ^/last  /test/ last;
    }
    
    location /test/ {
            default_type application/json;
            return 200 '{"name":"stark"}';
    }
}

301是永久重定向,内容会保存在客户端,302是临时重定向。

server {
    listen       80;
    server_name  www.gzip.com;
    index index.php index.html index.htm;
    root /usr/local/var/www/gzip;

    location ~ ^/imooc {
            #rewrite ^/imooc  http://www.baidu.com  redirect; #302临时重定向 
            rewrite ^/imooc  http://www.baidu.com  permanent  #301永久重定向;
    }
}

rewrite 规则场景:

server {
listen       80;
server_name  www.gzip.com;
index index.php index.html index.htm;
root /usr/local/var/www/gzip;

location / {

	   rewrite ^/course-(\d+)-(\d+)-(\d+)\.html$ /course/$1/$2/course_$3.html break; 

		if( $http_user_agent ~* Chrome ){
		  rewrite ^/nginx http://www.zhuangbfan.com/blog break;
		}

		#当访问文件不存在进行的转发
		if(!-f $request_filename){
			rewrite ^/(.*)$ http://www.zhuangbfan.com/$1 redirect;
		}
	}
}

rewrite 优先级:

执行server的rewrite命令
执行location匹配
执行选定location的rewrite
发布了98 篇原创文章 · 获赞 185 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/xuezhiwu001/article/details/97882935
今日推荐