Nginx规则屏蔽所有网页只留维护页面

何利用Nginx规则屏蔽所有网页只留维护页面?下面提供Nginx服务器下的实现规则,规则很简单,为了方便大家理解,先讲讲Nginx的匹配规则。

先看看下面的标识符

标识符 描述
= 精确匹配;用于标准uri前,要求请求字符串和uri严格匹配。如果匹配成功,就停止匹配,立即执行该location里面的请求。
~ 正则匹配;用于正则uri前,表示uri里面包含正则,并且区分大小写。
~* 正则匹配;用于正则uri前,表示uri里面包含正则,不区分大小写。
^~ 非正则匹配;用于标准uri前,nginx服务器匹配到前缀最多的uri后就结束,该模式匹配成功后,不会使用正则匹配。
普通匹配(最长字符匹配);与location顺序无关,是按照匹配的长短来取匹配结果。若完全匹配,就停止匹配。

使用方法

“=”精准匹配案例

location = /login {
# 精确匹配 /login ,匹配成功后,立即结束
}

“~”区分大小写正则匹配案例

location ~ /images/ {
#正则匹配,区分大小写,匹配成功后,立即结束
}

“~*”不区分大小写正则匹配案例

location ~* /images/ {
#正则匹配,不区分大小写,匹配成功后,立即结束
}

“^~” 不进行正则匹配的标准匹配

location ^~ /images/ {
# 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。
}

普通匹配(最长字符匹配)

location /blog/ {
# 与location顺序无关
# 若完全匹配成功,就不在继续匹配,否则还会进行正则匹配
}

匹配顺序如下所示:

(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (location /)

(精确匹配)> (最长字符串匹配,但完全匹配) >(非正则匹配)>(正则匹配)>(最长字符串匹配,不完全匹配)>(location通配)

结合上文的使用规则,假设仅允许访问/login页面,其它所有页面全部404,则使用下面规则,

由于/login页面是伪静态后的地址,所有要为 /login 页面提供伪静态规则,否则会404

location = /login {
try_files $uri $uri/ /index.php?$args;
}
如果是wordpress你还需要加上这一句,写到括号外就行了。
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
然后所有页面返回404:

location / {
return 404;
}
如果没有使用伪静态的地址,则可以使用下面的规则
location = /login {
//地址随意更换
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location / {
return 404;
}

本站发布的文章及附件仅限用于学习和研究目的;不得将上述内容用于商业或非法用途,否则后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。

如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

本文链接: https://www.cmezy.com/blog/nginxpb/

文本链接:Nginx规则屏蔽所有网页只留维护页面

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:创梦源码 谢谢

 

评论0

请先

没有账号? 忘记密码?