Wordpress “转换Apache”;不是",;Nginx的规则
我有一个Apache重写规则,可以防止Wordpress站点上的作者枚举。但是,为了维护Wordpress admin中的正确功能,此规则不适用于URI中包含Wordpress “转换Apache”;不是",;Nginx的规则,wordpress,apache,nginx,apache2,Wordpress,Apache,Nginx,Apache2,我有一个Apache重写规则,可以防止Wordpress站点上的作者枚举。但是,为了维护Wordpress admin中的正确功能,此规则不适用于URI中包含/wp admin的任何请求 # apache RewriteCond %{REQUEST_URI} !^/wp-admin [NC] RewriteCond %{QUERY_STRING} author=\d [NC] RewriteRule ^ - [L,R=403] 什么是合适的Nginx等价物? 我知道的一些事情: Nginx认
/wp admin
的任何请求
# apache
RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
RewriteCond %{QUERY_STRING} author=\d [NC]
RewriteRule ^ - [L,R=403]
什么是合适的Nginx等价物?
我知道的一些事情:
if
语句或多个条件if(THIS&&THAT){}
if
语句,这对性能来说并不理想if
语句在位置上下文中是“邪恶的”,并进一步指出,这些if语句可能会出现意外行为。因此,建议避免使用它们# nginx
location / {
set $MATCH "";
if ($uri !~* "^/wp-admin") { set $MATCH A; }
if ($args ~ "^author=\d") { set $MATCH "${MATCH}B"; }
if ($MATCH = AB) { return 403; }
try_files $uri $uri/ /index.php?$args;
}
如何做得更好?我宁愿使用两个
位置块:
位置/{
if($arg_author~ ^\d){return 403;}
try_files$uri$uri//index.php?$args;
}
位置/工作包管理员{
try_files$uri$uri//index.php?$args;
}
如果
块为:
如果在位置上下文中,可在内部执行的唯一100%安全操作是:
return ...;
rewrite ... last;