erver{ listen 80; server_name www.zls.com zls.com; root /mobile_pc; index index.html; 为什么要使用rewrite rewrite介绍 引入rewrite
引入rewrite
vim /etc/nginx/conf.d/mobile_pc.conf server{ listen 80; server_name www.zls.com zls.com; root /mobile_pc; index index.html; if ( $http_user_agent ~* "Android" ){ rewrite ^/$ http://$host/android redirect; } if ( $http_user_agent ~* "iPhone|iPad" ){ rewrite ^/$ http://$host/ios redirect; } }
rewrite介绍
1.什么rewrite?
将浏览器,发送到服务器的请求(url),根据规则重写,返回给用户
到底要干什么:就是修改url
为什么要修改url:为了安全,为了提高用户的体验
2.为什么要使用rewrite
就是为了修改URL,从而提高用户的体验
rewrite作用:
1.80强转443(提高用户的体验)
2.匹配客户端规则,返回对应页面(提高用户的体验)
3.伪静态(SEO)
什么是伪静态?
原本的动态也面,需要调用数据库,但是在浏览器中的url里,返回的是一个静态页面以html,css,js,shtml
为什么要做伪静态?
1.安装
2.为了SEO
3.如何使用rewrite
Rewrite标记Flag
rewrite
指令根据表达式来重定向URL
,或者修改字符串,可以应用于server,location,if
环境下,每行rewrite
指令最后跟一个flag
标记,支持的flag
标记有如下表格所示:
flag | 作用 |
---|---|
last | 本条规则匹配完成后,停止匹配,不再匹配后面的规则 |
break | 本条规则匹配完成后,停止匹配,不再匹配后面的规则 |
redirect | 返回302临时重定向,地址栏会显示跳转后的地址 |
permanent | 返回301永久重定向,地址栏会显示跳转后的地址 |
server { listen 80; server_name r.drz.com; root /code; location /abc { rewrite (.*) /ccc/bbb/2.html redirect; } location /2018 { rewrite ^/2018/(.*) /2014/$1 redirect; } location / { #rewrite 正则 替换内容 redirect; #rewrite 正则 /course/11/22/33/course_33.html redirect; rewrite ^/couese-(.*)-(.*)-(.*).html$ /course/$1/$2/$3/course_$3.html redirect; # 不仅是不灵活,需求写死了,永远都是一个页面 #rewrite ^/couese-(.*) /course/11/22/33/course_33.html redirect; } }