2017-02-22 2 views
1

지금 당장 이상한 상황이 있습니다. 기본적으로 우리 회사는 현재 최신 소프트웨어 빌드에 대한 링크를 게이트 뒤에두고 있지만 일단 사용자가 로그인하면 빌드에 링크를 배포 할 수 있습니다. 설명되지 않은 무료 30 일 재판.PHP - 하나의 도메인에서만 액세스 허용

추천 URL이 allowed_domain.com 인 경우를 제외하고 URL /downloads/file.extension에 대한 액세스를 차단하고 싶습니다. 또는 /downloads/에만 액세스를 차단하고 싶습니다.

나는 사랑.htaccess를 사용하는 것이지만, 우리가 사용하는 호스팅 제공 업체 (WP 엔진)의 Nginx에 설정된 자신의 서버가 있습니다. 뿐만 아니라, WP 엔진에 내 Nginx 코드를 보내야만 실용적이지 않은 코드를 구현할 수 있습니다.

따라서, 는 내가 PHP 유일한 해결책, 또는 내가 분명히 통지를하지 않은 워드 프레스 플러그인을 찾고 있어요.

네, 저는 이것이 내 회사가 중요한 파일을 저장하는 데 정말 어리석은 방법이라는 것을 알고 있습니다.하지만 더 나은 방법을 생각해 낼 때까지는이 문제를 해결해야합니다.

+0

그리고 네,'public_html' 밖에서 이런 종류의 파일을 호스트해야하고, PHP를 사용하여 보내지 만, WP 엔진은 나에게 진정한 루트에 대한 액세스 권한을 부여하지 않습니다. – Jesse

+0

Wordpress는 존재하지 않는 파일에 대해서만 URI를 재 작성한다고 생각합니다. 따라서 공개 된 디렉토리에 파일이있는 경우 PHP 만 사용하여 다운로드하는 것을 막을 수있는 방법이 없다고 생각합니다. –

+0

@KodosJohnson URL을 다시 쓰려고하지 않습니다. 특정 URL에서 오지 않는 한 리디렉션하려고합니다. – Jesse

답변

1

불행히도 당신이 설명한 것을 할 수 없습니다. 그 이유는 누군가가 사이트에서 파일에 액세스하려고 시도하면 웹 서버는 먼저 파일이 존재하는지 확인하고, 존재한다면 즉시 파일을 제공하기 때문입니다. 그것은 어떤 PHP 코드도 통과하지 않습니다. 따라서이 요청을 가로 채어 차단하는 PHP 코드를 작성할 수 없습니다.

1

내가 사용하고있는이 방법을 사용할 수 있습니다. 즐기십시오.

이러한 IP 주소를 나열해야합니다.

<?php $allow = array("201.168.0.1", "456.789.123", "789.123.456"); //allowed IPs 

if(!in_array($_SERVER['REMOTE_ADDR'], $allow) && !in_array($_SERVER["HTTP_X_FORWARDED_FOR"], $allow)) { 

    header("Location: http://yourdomain.com/index.php"); //redirect 

    exit(); 

} ?> 
+0

빠른 답변 주셔서 감사합니다. 이것은 내가 찾고있는 것보다 많거나 적게 보이지만 프론트 엔드 녀석입니다. 그래서 코드를 테스트하기 전에 기본적인 질문을합니다. 나머지는 모두 PHP 파일에 넣을 수 있습니까? 내 PHP 코드? – Jesse

+0

@JesseRogers, 기본적으로이 파일을 index.php로 만들 수 있습니다. 그래서 사용자가'www.yourdomain.com/index.php'를 실행하면 사용자 IP 주소를 확인한 다음 PHP로 리디렉션됩니다. 아마도'www.yourdomain.com/main.php'와 같은 PHP의 이름을 지정할 수 있으므로 해당 IP 사용자 만 리디렉션되고 나머지는 그렇지 않습니다. 도움이된다면 답을 클릭하십시오 : D – FreedomPride

+0

처음 대답 한 이후로 답을 얻을 수 있다면 답을 얻을 수 있습니다. 죄송합니다. 백엔드 코드에 대한 많은 도움이 필요합니다. 또 다른 질문 - 위치 : http : // yourdomain.com/index.php'. 허용 된 IP가 아닌 사용자가 전송되는 곳입니까? 아니면 내가 보호하려고하는 URL입니까? – Jesse

관련 문제