public function createApache($date, array $lines)
{
$file = __DIR__ . '/../.htaccess';
$data = "# " . $this->projectUrl . "\n# Updated " . $date . "\n\n" . "<IfModule mod_rewrite.c>\n\nRewriteEngine On\n\n";
foreach ($lines as $line) {
if ($line === end($lines)) {
$data .= "RewriteCond %{HTTP_REFERER} ^http(s)?://(www.)?.*" . preg_quote($line) . ".*\$ [NC]\n";
break;
}
$data .= "RewriteCond %{HTTP_REFERER} ^http(s)?://(www.)?.*" . preg_quote($line) . ".*\$ [NC,OR]\n";
}
$data .= "RewriteRule ^(.*)\$ – [F,L]\n\n</IfModule>\n\n<IfModule mod_setenvif.c>\n\n";
foreach ($lines as $line) {
$data .= "SetEnvIfNoCase Referer " . preg_quote($line) . " spambot=yes\n";
}
$data .= "\n</IfModule>\n\n# Apache 2.2\n<IfModule !mod_authz_core.c>\n\t<IfModule mod_authz_host.c>\n\t\t" . "Order allow,deny\n\t\tAllow from all\n\t\tDeny from env=spambot\n\t</IfModule>\n</IfModule>\n# " . "Apache 2.4\n<IfModule mod_authz_core.c>\n\t<RequireAll>" . "\n\t\tRequire all granted\n\t\tRequire not env spambot\n\t</RequireAll>\n</IfModule>";
$this->writeToFile($file, $data);
}