RewriteCond %{THE_REQUEST} " (/[^?]*)\?" RewriteRule !\.(php|pl|cgi)$ %1? [R=301,L]
$text = file_get_contents($file); $text = str_replace(array("\t", "\r"), '', $text); file_put_contents("$file.gz", gzencode($text, 9));
Когда уже есть список с именами файлов.
foreach ($files as $file) { copy($file, "compress.zlib://$file.gz"); }
RewriteCond %{THE_REQUEST} " /index\.php\? " RewriteRule ^ https://%{HTTP_HOST}/? [R=301,L]
123.45.64.0
123.45.71.255
RewriteCond %{REMOTE_ADDR} ^123\.45\.(6[4-9]|7[01])
Т.е. попадаете даже не на site2.ru/ref/ а именно на site2.ru/.
Ну значит site2.ru сам редиректит с /ref/ на главную.
Добавить в начало файла .htaccess строку:
RewriteRule ^r\d+$ http://site2.ru/ref/$0 [R=301,L]
$array = preg_split ('/\s+/U', $content, -1, PREG_SPLIT_NO_EMPTY);
Вот зря там добавили в шаблон модификатор U (PCRE_UNGREEDY).
Это делает квантификатор не жадным и в результатах будет куча пустых строк, на удаление которых тратится дополнительное время.
В данном случае модификатор U лучше убрать.
Попробуйте заменить в том выражении .*? на [\s\S]*?
По поводу возможностей mod_rewrite.
Если заглянуть в доку, то в списке доступных переменных можно увидеть TIME_DAY, TIME_HOUR, TIME_MIN, TIME_SEC.
Условием можно проверять минуты в TIME_MIN и каждый час блокировать 14-19, 34-39, 54-59.
RewriteCond %{TIME_MIN} [135][4-9]