2012-11-16 4 views
2

페이지가 example.com/blog/data.php이라고 가정합니다. file_get_contents을 사용하여 다른 스크립트 페이지에서 내용을 가져옵니다. 자, 다음을 원합니다 :방문자가 본 게시물을 막을 수있는 방법이 있습니까?

  1. Google 검색에서 data.php 페이지를 크롤링하고 색인을 생성하지 못하게하십시오.
  2. 방문자가 그것을

이를 달성 할 수있는 방법이 있나요에 액세스 할 수 금지한다?

답변

2

요청 URL이 example.com/blog/data.php 인 경우 다른 페이지로 리디렉션 할 수 있지만 훨씬 쉽고 논리적 인 해결책은 웹 루트에서 파일을 이동하는 것입니다.

편집 :

if ($_SERVER['REQUEST_URI'] === $_SERVER['SCRIPT_NAME']) 
{ 
    header('Location: /'); // redirect to home page 
} 
: 당신이 정말로 웹 루트 내부의 파일을 유지하려면, 당신은 당신이 직접 액세스하지 않는 스크립트의 상단에 같은 것을 사용할 수 있습니다

그러나 이것은 아마도 file_get_contents과 결합하여 작동하지 않을 것입니다 (결과에서이 줄을 제거해야 함). include 수 있습니다.

+0

example.com/blog/data.php에서 다른 페이지로 리디렉션하는 방법은 무엇입니까? – 123

+0

@ 123 내 편집을 참조하십시오. – jeroen

1

data.php을 웹 루트 아래에 두지 마십시오. 병렬 디렉토리에 보관하십시오.

+0

Google 검색에서 data.php 페이지를 크롤링하고 색인 생성하는 것을 금지하는 방법. – 123

+0

당신은 대답에서 말한대로 행동합니다. 웹 루트 아래에 있지 않으면 URL이 없습니다. URL이없는 경우 Google은 크롤링 할 수 없습니다. – Quentin

+0

URL이없는 경우 file_get_contents를 사용하여 페이지 콘텐츠를 가져 오는 방법은 무엇입니까? – 123

0

인증 된 사용자에 대해서만 액세스 제한을 적용하십시오.

example.com/blog/data.php?secret=someblah

및 파일 데이터의 첫 번째에 : 당신은 암호로 URL의 parama를 사용하여 페이지에 액세스하여 가장 간단한 방법으로 그것을 할 수 있습니다 다음을 수행 .PHP :

<?php 
if (!isset($_GET['secret']) || $_GET['secret'] != 'someblah')) exit(); 
?> 

그러나, 그것은 권장, 그것은 안전하지 becuase 공용 컴퓨터에서 이것을 사용하지만 기본 인증 원칙입니다하지 않습니다.

0

GET을 통해 토큰을 전달할 수 있습니다. 전반적으로 당신의 방법은 약간 잘못되었습니다. data.php 로직을 호출하는 스크립트에 통합하지 않는 이유는 무엇입니까?

관련 문제