limit_req_dry_run on;.location ~ \.php$ добавить fastcgi_param limit_req_status $limit_req_status;.$_SERVER['limit_req_status'] будет приходить PASSED или REJECTED_DRY_RUN. location @имя { ... } с нужными fastcgi_param или sub_filter.*.txt обрабатывает сам, то правилами htaccess тут не решить.*.txt, а когда файла с таким именем не нашлось, то проксирует запрос на Apache.RewriteRule ^robots\.txt$ robots_blabla.txt [L] listen 80;
server_name www.example.com;
listen *:80;
server_name example.com;
listen *:443 ssl;
server_name example.com;https://www.site.ru server {
listen 443 ssl;
server_name www.site.ru;
ssl_certificate ... ;
ssl_certificate_key ... ;
return 301 https://site.ru$request_uri;
}<VirtualHost> сайта где нужно закрыть доступ ботам.IncludeOptional sites-enabled/*.conf<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory><Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require expr %{HTTP_USER_AGENT} !~ /SemrushBot-SA|rogerbot|megaindex\.com/
</Directory>
Если используешь литерал регулярного выражения, то нужно экранировать "/".
var r = /.*:\/\/.*/;Если используешь конструктор объекта RegExp, то отпадает необходимость экранировать "/".
var r = new RegExp(".*://.*");