bingbotによる/wp-adminおよび/wp-login.phpへのアクセスを拒否しようとしていますが、nginxの構成に問題があります。私は次のことから始めました:
location ~ /(wp-admin|wp-login\.php) {
if ($http_user_agent ~* "(alltheweb|baidu|bingbot|googlebot|msnbot|slurp)") {
return 403;
break;
}
}
# Allow any php files to run
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/var/lib/php/php.socket;
}
これは、bingbotをブロックする場合は問題なく機能しますが、実行されませんwp-login.php
。静的ファイルのように扱います。「了解しました。それ以上のロケーションブロックに陥ることはありません」と思ったので、phpコードを上位のコードに複製しました。
location ~ /(wp-admin|wp-login\.php) {
if ($http_user_agent ~* "(alltheweb|baidu|bingbot|googlebot|msnbot|slurp)") {
return 403;
break;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/var/lib/php/php.socket;
}
}
# Allow any php files to run
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/var/lib/php/php.socket;
}
これにより、ダウンロードする代わりに再度ログインできるようになりましたwp-login.php
が、bingbotはHTTP200OKを再び取得しています。403またはphpハンドラーを適切に選択的に返すにはどうすればよいですか?