wp-admin 페이지에 들어갈 수 없습니다(cloudflare, nginx)

wp-admin 페이지에 들어갈 수 없습니다(cloudflare, nginx)

Cloudflare DNS 뒤에 Nginx에서 실행되는 WordPress 웹 사이트가 있습니다. nginx.conf의 모든 cloudflare IP에 대해 "set_real_ip_from"을 사용했습니다. 내 웹사이트에 접속하려고 하면 로그에서 내 실제 IP를 볼 수 있습니다. 기본 wordpress 관리자 로그인 디렉토리를 wp-admin에서 내 디렉토리 이름으로 변경했습니다. 내 WordPress에 로그인할 수 있도록 특정 IP만 허용하고 싶지만 내 웹 사이트 구성, 서버 블록에서 이렇게 하면 location ~ /(wp-admin|wp-login|mydirectory) { allow my.real.ip; deny all; return 404; } WordPress 관리자에 액세스할 수 없는 것 같고 404가 표시됩니다. 이 블록을 삭제하면 모든 것이 잘 작동하므로 입력하는 것 같습니다. 뭔가 잘못 ? 나는 이 포럼에서 몇 가지 다른 변형을 살펴봤지만 그 중 아무 것도 작동하지 않는 것 같습니다. wp-admin에 대한 액세스를 허용하지만 누구나 액세스할 수 있거나 모든 사람을 차단합니다.

편집하다 불행하게도 내가 무엇을 시도했는지에 관계없이 작동하도록 할 수 없었기 때문에 내가 한 일은 위치를 삭제했습니다 ~ /(wp-admin|wp-login|mydirectory) 블록, nginx 구성 다시 로드, wordpress에 로그인, wp-admin 변경 디렉토리 비활성화 플러그인을 사용한 다음 돌아가서 그 안에 위치 ~ /(wp-admin|wp-login|mydirectory) 블록을 다시 추가했습니다. @Michael Hampton이 제안한 대로 위치 ~ .php$ {를 추가했으며 이제 다음을 통해 내 WordPress 관리 페이지에 액세스할 수 있습니다. "wp-admin" URL을 사용합니다. 왜 그것이 사용자 정의 URL과 작동하지 않았는지 모르지만 nginx가 그것에 액세스하려는 다른 사람을 차단할 것이기 때문에 이것이 작동할 것이라고 생각합니다. 왜 작동하지 않았는지 아는 것이 흥미로웠을 것입니다.

답변1

404와 일치하는 모든 요청에 ​​대해 구체적으로 404를 요청했기 때문에 404가 표시됩니다 location.

    return 404;

404 이외의 메시지를 받으려면 이 명세서를 삭제해야 합니다.

또한 PHP 파일을 처리하려면 location그 안에 중첩된 항목을 배치해야 합니다 .location

location ~ /(wp-admin|wp-login|mydirectory) {
    ...
    location ~ .php$ {
        ....

관련 정보