nginx rewrite重写规则与防盗链配置方法

时间:2016-02-04 15:16:58来源:网络
导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标记的几种形式,盗链时返回403错误,允许的域名直接跟在第二行的域名后面。
nginx rewrite重写规则与防盗链配置方法

nginx rewite 规则,官方文档:http://wiki.nginx.org/NginxHttpRewriteModule

nginx rewrite规则格式:rewrite regex replacement flag

flag标记有四种格式:

last – 相当于Apache中的L
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302,相当于Apache中的R
permanent – 返回永久重定向的HTTP状态301,相当于Apache中的R=301
 

可以放在server, location 和 if 模块中。

匹配判断:
~  为区分大小写匹配; !~为区分大小写不匹配
~* 为不区分大小写匹配;!~为不区分大小写不匹配

例如,设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:

if ($http_user_agent ~ MSIE) {
  rewrite  ^(.*)$  /msie/$1  break;
}

附,常用nginx Rewrite 规则配置代码。

1、只使用一个网址,比如主力网址设为www.xfcodes.com。

if ($host != 'www.xfcodes.com' ) {
rewrite ^/(.*)$ http://www.xfcodes.com/$1 permanent;
}
 

访问xfcodes.com时,会自动跳转到www.xfcodes.com。

2、防盗链

location ~* .(gif|jpg|png|swf|flv)$ {
valid_referers none blocked xfcodes.com dgjs123.com;
if ($invalid_referer) {
return 403;
}
}
 

盗链时则返回403错误,允许的域名可以直接跟在第二行的域名后面。

3、WordPress的Rewrite

location / {
index index.html index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
 

目前,代码收藏上就是使用的这段代码。

4.bo-blog在nginx下nginx rewrite 规则

if (!-e $request_filename) {
  rewrite ^/post/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /read.php?entryid=$1&page=$2&part=$3 last;
  rewrite ^/page/([0-9]+)/([0-9]+)/?$ /index.php?mode=$1&page=$2 last;
  rewrite ^/starred/([0-9]+)/?([0-9]+)?/?$ /star.php?mode=$1&page=$2 last;
  rewrite ^/category/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=category_$1&mode=$2&page=$3 last;
  rewrite ^/archiver/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=archive&cm=$1&cy=$2&mode=$3&page=$4 last;
  rewrite ^/date/([0-9]+)/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=showday_$1-$2-$3&mode=$4&page=$5 last;
  rewrite ^/user/([0-9]+)/?$ /view.php?go=user_$1 last;
  rewrite ^/tags/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ /tag.php?tag=$1&mode=$2&page=$3 last;
  rewrite ^/component/id/([0-9]+)/?$ /page.php?pageid=$1 last;
  rewrite ^/component/([^/]+)/?$ /page.php?pagealias=$1 last;

#Force redirection for old rules
  rewrite ^/read\.php/([0-9]+)\.htm$ http://$host/post/$1/ permanent;
  rewrite ^/post/([0-9]+)\.htm$ http://$host/post/$1/ permanent;
  rewrite ^/post/([0-9]+)\_([0-9]+)\.htm$ http://$host/post/$1/$2/ permanent;
  rewrite ^/post/([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/post/$1/$2/$3/ permanent;
  rewrite ^/index\_([0-9]+)\_([0-9]+)\.htm$ http://$host/page/$1/$2/ permanent;
  rewrite ^/star\_([0-9]+)\_([0-9]+)\.htm$ http://$host/starred/$1/$2/ permanent;
  rewrite ^/category\_([0-9]+)\.htm$ http://$host/category/$1/ permanent;
  rewrite ^/category\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/category/$1/$2/$3/ permanent;
  rewrite ^/archive\_([0-9]+)\_([0-9]+)\.htm$ http://$host/archiver/$1/$2/ permanent;
  rewrite ^/archive\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/archiver/$1/$2/$3/$4/ permanent;
  rewrite ^/showday\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/date/$1/$2/$3/ permanent;
  rewrite ^/showday\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/date/$1/$2/$3/$4/$5/ permanent;

#Filename alias
  rewrite ^/([a-zA-Z0-9_-]+)/?([0-9]+)?/?([0-9]+)?/?$ /read.php?blogalias=$1&page=$2&part=$3 last;
}

nginx rewrite重写与防盗链配置相关推荐

  1. nginx利用referer指令实现防盗链配置

    nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求,我们应该牢记.下面这篇文章主要介绍了nginx利用referer指令实现防盗链配置的相关资料,需要的朋友可以 ...

  2. Nginx跨域配置、防盗链配置

    跨域配置 当出现403跨域错误的时候No 'Access-Control-Allow-Origin' header is present on the requested resource,需要给Ng ...

  3. Nginx的rewrite案例之防盗链

    防盗链 防盗链之前我们已经介绍过了相关的知识,在rewrite中的防盗链和之前将的原理其实都是一样的,只不过通过rewrite可以将防盗链的功能进行完善下,当出现防盗链的情况,我们可以使用rewrit ...

  4. Nginx网页优化及防盗链__gw

    Nginx网页优化及防盗链 Nginx服务优化 配置Nginx隐藏版本号 方法一 方法二 修改nginx用户和组 网页缓存时间 Nginx的日志分割 编写日志分割脚本 制作任务计划 链接超时 更改Ng ...

  5. apache配置反向代理以及实现url重写,防盗链

    反向代理配置: 在apache配置文件中加上这一句 反向代理google(已测试) 安装mod_ssl模块:yum -y install mod_ssl 实现url重写: 在apache配置文件中加上 ...

  6. Nginx 之防盗链配置

    1.http referer 是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上referer,告诉服务器是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理, locat ...

  7. Nginx 服务优化与防盗链

    文章目录 一.隐藏版本号 1.1 隐藏版本号的操作步骤(理论) 1.2 隐藏版本号的实验具体步骤(实操) 1.3 修改用户与组 二.缓存时间 2.1缓存时间的操作步骤(理论) 2.2 缓存时间的实验具 ...

  8. SRS 对接GB28181 token防盗链配置

    token防盗链:用户在播放时,必须先申请token,SRS会回调http检查这个token合法性. # push gb28181 stream to SRS.listen 1935; max_con ...

  9. Nginx rewrite ——重写跳转

    目录 一.Nginx常见模块 二.常用的Nginx正则表达式 三.local概述 3.1 local分类 3.2 local 常用的匹配规则 3.3 local 优先级 3.4 location 示例 ...

最新文章

  1. 为什么我不建议你用阿里巴巴Java规范,而使用 Google Guava 编程?
  2. 当超级智能崛起时……
  3. 当周期信号的频率趋向无穷时,它将消失
  4. 【JEECG技术文档】JEECG高级查询构造器使用说明
  5. Vue 父子组件间的通信
  6. 产线数字化软件源码_品质笔记⑥丨卢宇聪:把握数字化趋势,坚定创新发展道路...
  7. No valid Qt version set. Set one in Tools/Options 问题(QT)
  8. AngularJS控制器和AngularJS过滤器的学习(3)
  9. python 代码片段24
  10. wpsppt放映时间_利用WPS演示制作PPT计时器的两种方法
  11. JavaScript 打开新页面
  12. 雪球网 json 获取
  13. Axure实战案例——页面设计
  14. 简单了解cri,runtimes,CRI,shim
  15. html怎样分级显示,小技巧之分级显示详解
  16. 我们跟8个程序员聊了一晚上,攒齐了来自BAT的吐槽
  17. openwrt 认证收费_在OpenWrt中安装Wiwiz实现portal认证
  18. java书号属性,基于Java的ISBN书号查询示例代码-六派数据
  19. 使用EEGLAB函数处理自己的脑电数据流程及代码
  20. 数学计算机软件课程,《数学软件》课程教学大纲.doc

热门文章

  1. AI如果耍起了心眼,人类就像个白痴......
  2. 想知道人工智能的发展史?看完这篇文章你会赞叹科技的力量!
  3. 使用元学习和推理改善您的模型!
  4. tar命令使用方法以及.tar.gz文件和.zip文件
  5. 区块链架构下 智慧城市发展加速
  6. 未来趋势?通过无线技术管理汽车电池,可消除90%物理布线
  7. 牛津大学名誉教授Colin Blakemore:大脑是如何计算的?
  8. 物理学走到尽头了吗?
  9. Facebook数字货币凸显硅谷雄心:打造全球金融操作系统
  10. 国际基因编辑科技发展报告