CentOS 6.7에서 nginx + httpd와 함께 VestaCP 사용
웹사이트는 잘 돌아가고 있지만 403 오류가 발생하여 자바스크립트에서 PHP 파일을 로드하는 데 실패합니다.
나는 다음을 시도했습니다: (각 폴더에는 동일한 소유자 및 권한(755)이 있습니다)
wp-content/test.php // Error 403
wp-includes/test.php // Error 403
wp-admin/test.php // OK, 200
test/test.php // OK, 200
wp-contest/test.php // OK, 200
실제로... wp-content/*.php 및 wp-includes/*.php는 이러한 폴더 내의 하위 디렉터리에 php를 포함하지 못합니다.
wp-content 및 wp-includes에 있는 모든 PHP 파일은 자동으로 403 오류를 발생시킵니다. 이러한 파일이 존재하지 않더라도 404 대신 403이 표시됩니다.
- nginx.conf를 확인했는데 wp-content/wp-includes와 관련된 내용이 없습니다.
- .htaccess를 확인했는데 이상한 점은 없었고 백업한 후 삭제까지 했습니다.
- 폴더 권한은 755이고 파일 권한은 644입니다.
- 또한 시도
restorecon -R /home/$user/web/url/public_html
아무 것도 작동하지 않습니다. 파일이 독립적으로 로드되기 때문에 WordPress와 관련된 것이 아니라 서버와 관련된 것이어야 합니다.
추가 자료:
- 우리는 프록시가 비활성화된 상태에서 cloudflare를 사용하고 있으며 이 문제를 일으킨 이전 소유자로부터 어떤 구성도 상속받지 않았다고 생각하지만 이를 버리지 않을 것입니다.
- 웹사이트가 방금 호스팅에서 vps로 이전되었습니다.
- 저는 시스템 관리자이고 약 60개의 웹사이트를 보유하고 있으며 다른 웹사이트에서는 이 문제가 발생하지 않습니다.
답변1
유감스럽게도 다음 규칙을 따르는 또 다른 폴더가 있습니다 .htaccess
.wp-content
wp-include
<FilesMatch "\.(?i:php)$">
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
</FilesMatch>
나는 이것 때문에 키보드에 머리를 두드리며 몇 시간을 보냈습니다.
답변2
사용자 정의 규칙을 재정의할 수 있는 디렉터리 반환 값이 없는지 확인하세요.