什么是地址重写
获得一个来访的URL请求,然后改写成服务器可以处理的另一个URL的过程
地址重写的好处
缩短URL,隐藏实际路径提高安全性
易于用户记忆和键入
易于被搜索引擎收录
rewrite语法
rewrite regex replacement flag
if (条件) {…}
应用案例
1)访问a.html重定向到b.html
a.html-->b.html
vim /usr/local/nginx/conf/nginx.conf
server {
list 80;
server_name localhost;
rewrite /a.html /b.html redirect;
location ...{..}
}
2)访问www.a.com请求重定向到www.b.com
server {
list 80;
server_name www.a.com;
rewrite ^/ http://www.b.com/;
location ....{..}
}
3)访问www.a.com下的子页面,重定向到www.b.com下的相同的页面
server {
list 80;
server_name www.a.com;
rewrite ^/(.*)$ http://www.b.com/$1;
location ...{..}
}
4)实现curl和火狐访问相同链接返回的页面不同
server {
list 80;
server_name localhost;
location...{..}
if ($http_user_agent ~* firefox){
rewrite ^(.*)$ /firefox/$1;
}
}
地址重写的格式
rewrite 旧地址 新地址 [选项]
last不在读其他rewrite
break不在读其他语句,结束请求
redirect 临时重定向
permament永久重定向