2014-10-22 2 views
2

magento를 nginx 서버에서 실행 중입니다. 나는 auth_basic과 htpasswd 파일을 사용하여 .php 파일들로 가득 찬 폴더를 잠그기로 결정했다. auth가 없으면 PHP 페이지가 렌더링되고 제대로 작동합니다. 하지만 인증을 강요 한 후, 로그인 페이지가 표시되면 (로그인 상태가 좋음) 로그인하고 브라우저가 PHP 파일을 다운로드하려고 시도합니다. 그것은 그것을 렌더링하는 것을 거부합니다. 이것은 여러 브라우저 (크롬, 파이어 폭스, 오페라, 즉)에 걸쳐 있습니다. 암호로 보호 할 수 있지만 여전히 작동하도록하려면 어떻게해야합니까? 감사!htpasswd 인증 후 PHP 파일이 렌더링되지 않습니다

편집 :의 .conf 파일 인증 설정

location ~^ /FOLDER/ { 
    auth_basic     "Restricted"; 
    auth_basic_user_file   /path/to/htpasswd/; 
    } 
+0

비밀번호 설정 방법을 보여줄 수 있습니까? 분명히 서버의 구성에 문제가 있습니다. 그리고 'php'파일을 다운로드 할 때, PHP 코드 또는 실행 결과가 있습니까? – Cheery

+0

PHP 코드가 있습니다. 암호는 사이트의 .conf 파일에 설정되었습니다. – tsHunter

+0

위에 코드 스 니펫이 추가되면 코드를 PHP 인터프리터 (또는 다른 말로하면 PHP 인터프리터가 설정된 다른 위치로 보내지 않습니다. 이것은 nginx가 작동하는 방식입니다). 여기 예제를보세요 http://stackoverflow.com/questions/4576230/password-protect-backoffice-folder-in-nginx – Cheery

답변

4

Nginx에 당신이 보호 된 위치의 내부의 PHP 인터프리터의 프로세스에 '프록시'을 추가해야 할 다른 위치로하지 '점프', 그래서 것이다 :

location ~^ /FOLDER { 
    auth_basic     "Restricted"; 
    auth_basic_user_file   /path/to/htpasswd/; 
    location ~ \.php$ { 
     fastcgi_pass 127.0.0.1:9000; 
     include  fastcgi.conf; 
    } 
} 

포트 또는 구성을 설정의 다른 위치에있는 것으로 변경하십시오. 명명 된 위치가있는 또 다른 방법이 있지만 여기에 필요하다고 생각하지 않습니다.

+0

아, 그 말이 맞습니다. 위대한 작품, 감사합니다! – tsHunter