2016-04-11 9 views
1

Webサーバー上のすべてのサイトに対してwp-login.phpとxmlrpc.phpへのアクセスをブロックしようとしています。私はhtaccessではなくapacheレベルでこれをやりたいhtaccessではなくapacheレベルでハイフンを使用するユーザーエージェントをブロックしたい

私はApacheのconf.dに次のファイルを持っていますが、CURLテストを行うとまだページが表示されます。

<Files ~ "^(wp-login|xmlrpc)\.php"> 
     order allow,deny 
     allow from all 
     SetEnvIf User-Agent - bad_user 
     Deny from env=bad_user 
</Files> 

誰かが間違っていることを知っていますか?

+0

各サイトのhtaccessファイルを使用する必要はありませんあなたの設定が正しいようで、サーバー上のすべてのサイトに影響を与えます。あなたが使用しているカールコマンドは何ですか?この 'curl -I -H 'User-Agentを試してください: - " domain.com/wp-login.php'これは、禁止された403を返します。 – nidhi

+0

@nidhi curl -A " - " domain/wp-login.phpを使用していました。それでも200の応答を得る。 curlコマンドで同じ結果を返します –

+0

使用しているcurlコマンドは問題なく、設定も正しいです。これらの行は 'httpd.conf'ファイルに置くか、' xxxxx.conf'ファイルの 'directory conf.d'ファイルに置くことができます。注意してください。**ファイルの拡張子は.confです。**また、変更を有効にするには、apacheを再起動してください。 – nidhi

答えて

1

@nidhiのおかげで助けになりました。ここでの答えがあることをApacheのconf.dファイルに次のように使用することです:

SetEnvIf User-Agent "^-$" bad_user 
SetEnvIf User-Agent "^$" bad_user 
<Files ~ "^(wp-login|xmlrpc)\.php"> 
     order allow,deny 
     allow from all 
     Deny from env=bad_user 
</Files> 

空白または単にハイフンで任意のユーザーエージェントをブロックしますコード - WP-ログインにアクセスしようとしています() .phpまたはxmlrpc.php ファイル名をzzzz_blockua.confのように指定して、apacheが最後にロードするようにしてください。

これは、これらのページに当たるボットがphp/mysqlプロセスを使用せず、Apacheが403エラーを返すだけなので、サーバーの負荷を軽減するのに役立ちます。

それはあなたが共有ホスティングサーバーを持っているので、もし、あなたが

関連する問題