htaccess, чтобы отключить поисковый домен wordpress /? s = test

мой блог wordpress засыпан бессмысленными поисковыми запросами.

htaccess, чтобы отключить поисковый домен wordpress /? s = test

senseless wordpress search requests

поисковый запрос на корейском языке?

wordpress_senseless_searches_result

что переводится как:

wordpress_senseless_searches_result_translated

, значит, это либо DDoS, либо СПАМ.

рассматриваемые IP-адреса:

хост 66.249.64.24 24.64.249.66.in-addr.arpa указатель имени домена crawl-66-249-64-24.googlebot.com.

host 66.249.64.26 26.64.249.66.in-addr.arpa указатель имени домена crawl-66-249-64-26.googlebot.com.

что-то не так с iptables, и я не могу заблокировать запросы через IP.

запросы выглядят вроде этого:

domain.com/?s=StrangeKoreanSearchPattern

какое регулярное выражение мне понадобится в .htaccess, чтобы все поиски были защищены паролем?

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

<FilesMatch "wp-login.php">
    AuthName "WordPress Admin"
    AuthType Basic
    AuthUserFile /home/admin/web/.htpasswd
    require valid-user
</FilesMatch>

# DOES NOT WORK :-|    
<FilesMatch "index\.php\?s=.*">
    AuthName "WordPress Admin"
    AuthType Basic
    AuthUserFile /home/admin/web/.htpasswd
    require valid-user
</FilesMatch>

спасибо!

1
задан 4 March 2019 в 01:12
2 ответа

После небольшого исследования и тестирования я бы сказал, что следующая запись htaccess должна работать:

<If "%{QUERY_STRING} =~ /.?s=/">
  AuthName "WordPress Admin"
  AuthType Basic
  AuthUserFile /home/admin/web/.htpasswd
  require valid-user
</If>

Источник: https://stackoverflow.com/questions/31903448/htaccess-deny -specific-get-parameter

Чтобы прояснить, что это делает: Если строка запроса (строка, начинающаяся с «?» После «domain.com/») содержит «? S =», то требуется действительный пользователь из файла .htpasswd.

1
ответ дан 3 December 2019 в 20:09

спасибо за ваш ответ, .htaccess и регулярное выражение - два зверя в одном.

изменил ваш ответ, и теперь он, кажется, работает нормально. # Спасибо!

<If "%{QUERY_STRING} =~ /^.?s=/">
  AuthName "WordPress Admin"
  AuthType Basic
  AuthUserFile /home/admin/web/.htpasswd
  require valid-user
</If>

<If "%{QUERY_STRING} =~ /^.?search=/">
  AuthName "WordPress Admin"
  AuthType Basic
  AuthUserFile /home/admin/web/.htpasswd
  require valid-user
</If>
1
ответ дан 3 December 2019 в 20:09

Теги

Похожие вопросы