2017-12-15 13 views
-3

다음과 같은 .htaccess 파일 내용이 있습니다 :
파일이 간결하게 잘립니다.htaccess 이미지 제한이 모든 도메인에서 완벽하게 작동하고 로컬 호스트도 작동하지만 작동하지 않습니다. http://192.168.4.2

Options -Indexes 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://192.168.4.2 [NC] 
RewriteCond %{HTTP_REFERER} !http://192.168.4.2 [NC] 
RewriteRule \.(jpg)$ - [F] 

아이디어는 jpg 확장합니다 (F|forbidden 플래그를 사용) 금지되어 있다는 점이다.

내 IP를 제외한 모든 환경에서 정상적으로 작동합니다 (http://192.168.4.2).
모든 설명을 이해할 수 있습니다.

+3

대문자를 피하십시오. 질문의 형식을 더 잘 지정하십시오. 코드를 추가하여 재 작성하고 도움을 요청하는 문제/질문을 명확하게 설명하십시오. 질문하는 방법에 대한 도움말 섹션 (https://stackoverflow.com/help)을 검토하십시오. – Yannis

답변

0

RewriteCond의 패턴 문자열이 상대 URL (/vpn) 대신 전체 URL (http://localhost/vpn)을 사용하기 때문에 문제가 발생한 것 같습니다. 이 작업을 시도 할 수 있습니다 - 질문의 세부 사항에 변화에 따라

<IfModule mod_rewrite.c> 
    Options -Indexes 
    RewriteEngine on 
    RewriteCond %{HTTP_REFERER} !^/vpn [NC] 
    RewriteCond %{HTTP_REFERER} !/vpn [NC] 
    RewriteRule \.(jpg)$ - [F] 
</IfModule> 
+0

내 코드가 변경되었습니다. 죄송합니다.이 url에서 나를 도와주세요. 192.168.4.2 – sudipta

+0

코드가 정확히 바뀌 었습니까? 그냥 IP 주소 야? 또는 URL 구조도 마찬가지입니까? – DeadLock

+0

예이 URL에서 내 URL 문제 만 변경했습니다. 도와주세요. – sudipta

0

업데이트 대답 - 당신은해야합니다을 다음과 같이 RewriteCond을 변경할 수 있습니다.

Options -Indexes 
RewriteEngine on 
RewriteCond %{REMOTE_ADDR} !^192\.168\.4\.2$ 
RewriteRule \.(jpg)$ - [F] 

%{REMOTE_ADDR} 대신 조건을 사용하여 %{HTTP_REFERER}

의 가능한 중복 - mod_rewrite based on ip

+0

왜 답변을 게시 했습니까 ...? 연결되지 않았습니까? 하나가 중복 되었습니까? – JustCarty

+0

OP가 자신의 문제에 대한 원래 설명을 변경했습니다. 이 변경이 이루어지기 전에 원래 설명에 대한 첫 번째 응답이 게시되었습니다. – DeadLock

+0

그렇다면 더 이상 필요하지 않으면 아마도 그 질문을 삭제해야한다고 생각합니다. – JustCarty

0
빠른 구글

및 문서의 읽기이 링크를 알려준 :
https://httpd.apache.org/docs/2.4/rewrite/access.html#blocked-inline-images

것은 변화 시도 귀하의 코드 :

Options -Indexes 
RewriteEngine on 
RewriteCond "%{HTTP_REFERER}" "!^$"      # no referer (they entered the URL directly) 
RewriteCond "%{HTTP_REFERER}" "!http://192.168.4.2" [NC] # they came from an address at "www.example.com" 
RewriteRule "\.(gif|jpg|png)$" "-" [F,NC]     # the extension to block, separated by a pipe ("|") 

몇 가지 참고 사항 :

  • 가 무의미 RewriteCond (!^http://192.168.4.2를) 제거되었습니다.
    캐럿 기호는 RegEx에서 가져온 것으로 패턴의 시작을 나타내는 데 사용됩니다. 이것은 두 가지 규칙이 실질적으로 동일 함을 의미합니다.
  • 빈 리퍼러 패턴이 추가되었습니다.
  • 기타 확장 기능이 추가되었습니다.
    이 문서의 내용이며 귀하가 차단하는 확장 프로그램은 귀하에게 달려 있습니다.
  • 몇 가지 설명을 추가했습니다.