2017-11-19 11 views
1

MYSQL 데이터베이스에서 가져온 정보를 표시하는 간단한 PHP 파일을 만들었습니다. 바로 그 후 Nginx에서 링크를 친숙하게하고, 그것을 가져 오는 .php 파일을 마스크하기 위해 다시 쓰기 규칙을 사용합니다.Nginx가 PHP 파일에 액세스하지 못하도록 차단했습니다.

예 : http://localhost/myfile.php?seo=how-to-install-linux 재 작성 규칙 후에 내가 그것을 좋아에 액세스 할 수 있습니다

http://localhost/how-to-install-linux 

내 재 작성 규칙

은 다음과 같습니다

location/{ 
rewrite ^/([a-zA-Z0-9_$\-]+)$ /myfile.php?seo=$1 last; 
rewrite ^/(.*)/$ /$1 permanent; <- just to block trailing slash 
} 

내 문제는 내가도에 대한 직접 액세스를 차단하려는 것입니다 내 PHP 파일 및 전 서재응 친화적 인 URL을 일하고 싶습니다.

location = /myfile.php { 
deny all; 
} 

이 규칙은 친숙한 URL을 통해 내 PHP 파일에 대한 완전한 액세스를 차단합니다. NGINX를 사용하여 친숙한 버전을 작동시키는 방법이 있습니까? 내 다른 설정은 다음과 같습니다

location ~ \.php$ { 
try_files $uri =404; 
include fcgi.conf; 
fastcgi_pass unix:/var/run/ajenti-v-php7.0-fcgi-drnou-php7.0-fcgi-0.sock; 

} 

난 단지 Nginx에를 사용, 더 아파치가 설치되지 않습니다.

답변

2

internal 지시문을 사용하면 위치에 직접 액세스하지 못하도록 할 수 있습니다. 자세한 내용은 this document을 참조하십시오. 예를 들어

: 그것은 작동

location = /myfile.php { 
    internal; 
    include fcgi.conf; 
    fastcgi_pass unix:/var/run/ajenti-v-php7.0-fcgi-drnou-php7.0-fcgi-0.sock; 
} 
+0

! 고마워. Google에서 기본 검색어를 검색했지만 유용한 것은 없습니다. 다시 고마워! – Newb90