Apache 2.4 //ファイルの一致

Apache 2.4 //ファイルの一致

test.htmlが(予想どおり)無効になっていますが、wp-login.phpを使用できる理由を知りたいです。私は FilesMatch と Files を試しましたが、似たような「chown」と「chmod」があります。公式Apache 2.4のドキュメントを読んだ。たくさん見ました。この正しい設定で何が問題なのか、なぜwp-login.phpを常に使用できるのか理解できません。どのようにアクセスが拒否されるのですか? !

<Directory /home/user/html>

Require all granted
Options -Indexes

   <FilesMatch "^wp(.*)$">
    <IfModule mod_authz_core.c>
        Require all denied
        Require ip 10.145.13
    </IfModule>
  </FilesMatch>

  <FilesMatch "^test(.*)$">
    <IfModule mod_authz_core.c>
        Require all denied
        Require ip 10.145.13
    </IfModule>
  </FilesMatch>

</Directory>

編集する

フィリップありがとうございます。私も似たような考えをしてみました - どうやって私は…

/wp-loginに移動すると、Apacheは最初にwploginをロードしません。

わかりません。 /wp-loginディレクトリがないため、wp-login.phpファイルは1つしかないので、直接開きます。 http://...my..blog/wp-login.php

ところで、ちょうど覚えていますね。 Apache 2.2を使用したときに本当に魅力的でした。これで2.4がありますが、WordPressは同じままです。私たち全員が知っているように、2.4には異なる構文があります。したがって、以前の2.2構成と同じ方法で動作する新しい構成を採用しました。しかし...

本当に変です。

そして記事を見つけました。https://www.saotn.org/wordpress-htaccess-security-best-practices-apache-24/ しかし、以前はすべてを同じように構成していました。私の設定が正しいことを確認するためです。

だから何をすべきかわかりません。

UPD:これを見つけました。https://stackoverflow.com/questions/32487034/apache-2-4-restricting-access-to-wp-login-php-by-ip-not-working

ベストアンサー1

これはWordPressのアーキテクチャに関連しています。 Apacheに移動すると、/wp-loginwploginは最初にロードされません。代わりに、書き換えルールを使用してURLを書き換えます。

今はエントリポイントを覚えていませんが、wp-ログイン名をパラメータとしてApacheから別のPHPファイルが呼び出されます。

その後、他のPHPファイルにはwp-login.phpが含まれています。 Apacheはこれを制御できません。

これらのルールは通常 .htaccess ファイルに保存されます。

これを実証するために、Apacheの.htaccessファイルの使用を一時的に無効にし、他のすべての書き換えルールを無効にすることができます。

永続的な解決策のために書き換えルールを調整することで、追加の条件でwp-login.phpを拒否または無視できます。

おすすめ記事