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>

편집하다

Philip 고마워요. 저도 비슷한 생각을 해 봤어요 - 어쩌고 저쩌고...

/wp-login을 탐색할 때 Apache는 wplogin을 먼저 로드하지 않습니다.

확실하지 않습니다. /wp-login 디렉토리가 없기 때문에 wp-login.php 파일이 하나만 있으므로 직접 엽니다. 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를 거부하거나 무시할 수 있습니다.

관련 정보