htaccess 拒绝特定基本路径/目录的请求

问题描述 投票:0回答:1

我的 WordPress 函数文件中包含了这个 PHP 代码,它可以工作,但我想将逻辑移到 WP 之外,并在加载 WordPress 之前将其拒绝(htaccess)

我们收到了大量针对 /rest/api/******** 的 Bot 请求,这些请求甚至都不是该网站的合法页面。它会消耗大量资源来为这些请求生成 404。

我想弄清楚如何在 htaccess 级别拒绝所有对 /rest/* 或 /index.php/rest/* 的请求。

这是我在 PHP 中的内容...

if(substr($_SERVER['REQUEST_URI'],0,6) == '/rest/' || substr($_SERVER['REQUEST_URI'],0,16) == '/index.php/rest/'){
    header( 'HTTP/1.1 400 BAD REQUEST' );
    exit("Invalid Request");
}
.htaccess mod-rewrite
1个回答
0
投票

如果您使用 apache 服务器作为服务的基础(您的措辞暗示了这一点,但您没有具体说明),您可以使用重写模块。显然必须加载该模块。

这可能是您实施的第一个起点:

RewriteEngine on
RewriteRule ^/?rest/ - [F]
RewriteRule ^/?index\.php/rest/ - [F]

您应该在中央 http 服务器的主机配置中实施此类规则。这比使用“分布式”配置文件(通常称为“.htaccess”)更高效。仅当您无权访问中央配置时,这些文件可能会提供最后一个选项。 我建议您不要简单地将互联网上的内容复制到您的生产系统中。由于“明显”的原因......您需要“理解”您在做什么,您需要能够使用您自己使用的工具。否则您根本不应该自己运营此类服务。因此,请在您的开发环境中测试该建议。阅读您正在使用的工具的文档(这里是 apache 重写模块)。

© www.soinside.com 2019 - 2024. All rights reserved.