引入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;
}
}