RewriteRule ^cats(.*)$ https://site.ru/catalog$1 [L,R=301]
Headlesz, в правилах для замены CATS и удаления .html нужно указать полный адрес c https://domain и поставить их над правилом для редиректа на https.
RewriteRule "^(search/.*?) (.*)" /$1-$2 [R=301,L]
Order Allow,Deny Allow from all # Deny from x.x.x.0/x Deny from x.x.x.0/x --//--
Можно добавить SetEnvIf и поменять порядок в Order.
SetEnvIf Request_URI ^/page1$ allow_page=1 Order Deny,Allow Allow from env=allow_page Allow from env=redirect_status Deny from x.x.x.0/x Deny from x.x.x.0/x
Order deny,allow deny from all Allow from 227.123.80.0/24
Там же ещё код ответа нужно сменить с 403 на 404.
Файл /admin/.htaccess
ErrorDocument 403 /404.php Order deny,allow Deny from all Allow from 227.123.80.0/24
Файл /404.php
<?php http_response_code(404);
Вариант с mod_rewrite
/admin/.htaccess
ErrorDocument 403 /404.php DirectorySlash off RewriteEngine on RewriteCond %{REMOTE_ADDR} <227.123.80.5 [OR] RewriteCond %{REMOTE_ADDR} >227.123.80.227 RewriteRule ^ - [F]
Все нормально. Можно даже не R=permanent, а redirect=permanent - это всё синонимы R=301.
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^/?(.*) https://%1/$1 [L,redirect=permanent]
^/? обеспечивает одинаковую работу в контексте VirtualHost и .htaccess.
В контексте VirtualHost строка с которой работает RewriteRule всегда начинается с "/", а в .htaccess всё наоборот.
Там нужно не кавычки, а обратные апострофы
var=`/etc/init.d/nginx reload`;
Просто удалить \r
tr -d '\r' < blockip.sh > blockip_fix.sh
В Window конец строки это последовательность из двух символов \r\n, а в Unix конец строки только один символ \n.
SELECT CONCAT('deny ', INET_NTOA(ip_start), ';') FROM `xyfq1_blacklist_items` WHERE `c` > 50 ORDER BY `c` DESC
Ну и bash скрипт примерно такой:
#!/bin/bash user=user pass=xxxxx mydb=dbname query="SELECT CONCAT('deny ', INET_NTOA(ip_start), ';') FROM \`xyfq1_blacklist_items\` WHERE \`c\` > 50 ORDER BY \`c\` DESC " mysql --skip-column-names --user="$user" --password="$pass" --database="$mydb" --execute="$query" > blockip.conf