мой блог wordpress засыпан бессмысленными поисковыми запросами.
htaccess, чтобы отключить поисковый домен wordpress /? s = test
поисковый запрос на корейском языке?
что переводится как:
, значит, это либо 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>
спасибо!
После небольшого исследования и тестирования я бы сказал, что следующая запись 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.
спасибо за ваш ответ, .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>