1

Nginx Config を使用して WordPress の wp-login.php が一般にアクセスされないようにするにはどうすればよいですか。

htaccess を使ってアクセスを制限する方法は知っていますが、Nginx ではどうすればよいですか?

試した設定はこちら。

location /wp-login.php {
       auth_basic            "Restricted";
       auth_basic_user_file  /var/www/example.com/.htpasswd;
}

wp-admin にアクセスすると、wp-login.php ファイル全体をダウンロードできます。

なにか提案を?

4

4 に答える 4

4

これは私にとってはうまくいきました-注意location ~* はしませんでした

location ^~ /wp-login.php {
    auth_basic            "Restricted Area: WordPress";
    auth_basic_user_file  /home/path/to/passwords/.htpasswd;
}

もちろん、それは に加えてlocation /wp-adminです。

これは、~*(4番目)が(2番目)よりもNginxの検索順序^~が低いためだと思います。

別のインクルード ファイルにブロックが存在するlocation ~ \.php$ために wp-login ブロックが無視されるのではないかと思いましたが (常にメインの構成ファイルを確認する価値があります)、そうではないようで、ファイルを並べ替えてもどちらのパターンでも違いはありませんでした.

于 2014-11-05T14:00:22.297 に答える
0

さまざまなスニペットをテストしましたが、wp-admin と wp-login.php の両方を保護するために機能したものはありません。問題は保護だけではありません。むしろ、wp-login.php にアクセスすることです。.htpasswd に従って正しい認証情報を入力すると、wp-login.php ページが添付ファイルとしてダウンロードされました。ログインできませんでした。これは私のために仕事をし、wp-adminとwp-login.phpの両方を保護しました:

## Protect my wordpress login page and directory with a password 
    location = /wp-login.php {
    auth_basic  "Login";
    include snippets/fastcgi-php.conf;
    auth_basic_user_file /etc/nginx/.htpasswd;
    fastcgi_pass unix:/run/php/php8.0-fpm.sock;
    }

私はこれについて完全な答えを書きました。このページで見つけることができます。

于 2021-03-10T05:44:12.463 に答える