这是可能的 - 分 2-3 步...
创建要拒绝的 IP 文件。它可以是 .php 文件、.txt 文件,甚至是 .csv 文件。
创建一个 .php(或您选择的语言)脚本,其目的是输出一个名为“.htaccess”的文件。
每次您将 IP 文件更新为拒绝时,运行上述 2) .php 脚本,并向您的每个域输出一个新的 .htaccess。
如果除了 IP 之外还有要拒绝的语句,请将它们硬编码到 .php 脚本中以首先输出。见https://www.askapache.com/htaccess/
.php 脚本通常如下所示:
$output = "statement1".PHP_EOL;
$output .= "statement2".PHP_EOL;
$output .= "statement3".PHP_EOL;
...
然后,当您准备好拒绝部分时:
$denyList = file_get_contents("the/list/of/IPs.txt"); // or .php etc.
$ArrayDenyList = explode(PHP_EOL,$denyList); // or your line ending character, if necessary
foreach($ArrayDenyList as $key =>$value) {
$output .= 'Deny from '.$value.PHP_EOL;
}
然后写入文件:(你可能有一个标准的方式):
$handle = fopen(.htaccess,"w"); //complete path if in another domain
fwrite($handle,$output);
fclose($handle);
echo "Success - <p>";
如果您有多个域,则有一个包含这些域名路径的数组,并 foreach 该数组,并写入每个路径。
如果某些域已经有 .htaccess 要求,请将其放入可读的 .txt 文件中...执行 file_get_contents(在此之上),“输出 =”,添加“拒绝”,然后“输出 .= ... " 每个都在 "foreach()" 循环中。
无论如何...您之前已经完成了所有这些事情...只需将每种技术应用于此场景即可。
.htaccess 文件不能“include()”其他文件,但 .php 脚本可以,.php 脚本可以输出名为“.htaccess”的文件,可以通过脚本构建。
上述方法有效,当我需要为我的每个产品目录创建“RewriteRule”行时,我就开始这样做了!每次我添加一个新产品时,我都会运行我的脚本来输出一个新的 .htaccess 文件......从我的产品 SQL 表构建。类似于“fwrite”我的 sitemap.xml 的 .php 脚本。
(我希望没有 .php 标点符号或“$”在这种输入中丢失。)