- 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