Nginx的URL地址重写功能,主要是使用nginx提供的rewrite功能,且支持正则表达式
rewrite能够实现url的跳转,实现url规范化,根据请求的变量实现url跳转等等,基于url重写功能常见的效果如下
- 对于爬虫程序的封禁,让其跳转到一个错误的页面
- 动态的url伪装成静态的html界面,便于搜索引擎的抓取
- 新旧域名的更新,替换
rewrite 语法
rewrite ^/(.*) http://192.168.178.134/$1 permanent
解释
rewrite是nginx地址重写的关键词指令,开启跳转功能
正则 ^/(.*) 表示匹配所有的请求,匹配成功后,跳转到后面指定的url地址
$1 是取出前面正则表达式分组括号里的内容
permanent表示301重定向的标记
rewrite结尾的参数标记如下
- Last 规则匹配完成后,继续向下匹配新的location
- break 本条规则匹配完成后,立即停止匹配动作
- redirect 返回302临时重定向状态栏,浏览器地址栏显示跳转后的url,爬虫不会更新该url
- permanent 返回301永久重定向,浏览器地址栏也显示跳转后的url,爬虫会更新该网站url
last和break用于实现url重写,浏览器的地址栏不会发生变化
redirect和permanent也是用于跳转,浏览器url地址栏发生变化,跳转到新的url地址栏
实现一个301 url 跳转
准备一个虚拟机的配置文件,实现,当用户访问该虚拟主机,直接跳转到百度页面
vim learn_rewrite.conf
server{
listen 90;
server_name _;
location / {
rewrite ^/(.*) http://www.baidu.com/$1 permanent;
}
}
网友评论