nginx rewrite重写规则与防盗链配置方法教程详解

nginx rewrite重写规则与防盗链配置方法教程详解,第1张

nginx rewrite重写规则与防盗链配置方法教程详解

导读: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/ break;
}

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

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

if ($host != 'www.xfcodes.com' ) {
rewrite ^/(.*)$ http://www.xfcodes.com/ 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 (.*) /index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) /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=&page=&part= last;
rewrite ^/page/([0-9]+)/([0-9]+)/?$ /index.php?mode=&page= last;
rewrite ^/starred/([0-9]+)/?([0-9]+)?/?$ /star.php?mode=&page= last;
rewrite ^/category/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=category_&mode=&page= last;
rewrite ^/archiver/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=archive&cm=&cy=&mode=&page= last;
rewrite ^/date/([0-9]+)/([0-9]+)/([0-9]+)/?([0-9]+)?/?([0-9]+)?/?$ /index.php?go=showday_--&mode=&page= last;
rewrite ^/user/([0-9]+)/?$ /view.php?go=user_ last;
rewrite ^/tags/([^/]+)/?([0-9]+)?/?([0-9]+)?/?$ /tag.php?tag=&mode=&page= last;
rewrite ^/component/id/([0-9]+)/?$ /page.php?pageid= last;
rewrite ^/component/([^/]+)/?$ /page.php?pagealias= last;
#Force redirection for old rules
rewrite ^/read\.php/([0-9]+)\.htm$ http://$host/post// permanent;
rewrite ^/post/([0-9]+)\.htm$ http://$host/post// permanent;
rewrite ^/post/([0-9]+)\_([0-9]+)\.htm$ http://$host/post/// permanent;
rewrite ^/post/([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/post//// permanent;
rewrite ^/index\_([0-9]+)\_([0-9]+)\.htm$ http://$host/page/// permanent;
rewrite ^/star\_([0-9]+)\_([0-9]+)\.htm$ http://$host/starred/// permanent;
rewrite ^/category\_([0-9]+)\.htm$ http://$host/category// permanent;
rewrite ^/category\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/category//// permanent;
rewrite ^/archive\_([0-9]+)\_([0-9]+)\.htm$ http://$host/archiver/// permanent;
rewrite ^/archive\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/archiver///// permanent;
rewrite ^/showday\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/date//// permanent;
rewrite ^/showday\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\_([0-9]+)\.htm$ http://$host/date////// permanent;
#Filename alias
rewrite ^/([a-zA-Z0-9_-]+)/?([0-9]+)?/?([0-9]+)?/?$ /read.php?blogalias=&page=&part= last;
}

以上所述是小编给大家介绍的nginx rewrite重写规则与防盗链配置方法教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/899511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存