2013-03-06 4 views
1

내 서버에 PHP 파일이 있는데 올바른 참조가없는 사람이 액세스하지 못하도록하고 싶습니다..htaccess Block PHP Referer 파일 액세스

이것은 현재 작동하는 현재 규칙입니다.

RewriteCond %{REQUEST_URI} .streamer\.php* 
RewriteCond %{HTTP_REFERER} !.*domain.com.* 
RewriteRule .* - [F] 

이 규칙은 mod_rewrite에 대해 충분히 친숙합니까? 아니면 약간 정리하거나 정리해야합니까? 그것은 기능을 수행하지만 나는 mod_rewrite과 아무 전문가도없고 내 방법보다 더 나은 코드가있을 수 있습니다 확신합니다.

+0

리퍼러는 스푸핑 될 수 있습니다. 왜 그럴 필요가 있니? 아마도 세션과 같이 더 쉽고 안전한 방법 일 것입니다. – Ryan

+0

나는 그들이 PHP 파일에 세션을 입력 할 수 있다는 것에 대해 걱정하지 않고 스푸핑 될 수 있지만 현재는 기존의 작동하는 코드를 정리하는 데 더 관심이 있습니다. – C0nw0nk

+0

그렇게 정리하고 사용하는 세션. (모든 사람들이 리다이렉터가 켜져있을 필요는 없습니다.) – Ryan

답변

1

당신은 규칙 그 자체로 %{REQUEST_URI} 조건을 결합 할 수 있습니다, 당신은 리퍼러 정규식을 정리할 수 있습니다

이 아니라, 빈 리퍼러를 차단하는 것
RewriteCond %{HTTP_REFERER} !^https?://[^/]+\.domain\.com/? [NC] 
RewriteRule .streamer\.php - [F] 

참고 복사 직선으로 링크를 붙여 넣으면 같은 브라우저의 URL 주소 표시 줄. 빈 리퍼러를 허용하려면 추가 조건을 추가해야합니다.

RewriteCond %{HTTP_REFERER} ^$ [OR] 
RewriteCond %{HTTP_REFERER} !^https?://[^/]+\.domain\.com/? [NC] 
RewriteRule .streamer\.php - [F] 
+0

jon은 매우 잘 작동합니다. – C0nw0nk