"궁극적 인"안티 핫 링크 .htaccess를 작성하려고합니다 ...
인터넷에서 많은 예제 / 튜토리얼 / 생성기 를 찾을 수 있지만 대부분이 잘못되었거나 불완전합니다 (또는 둘 다).
내가 찾고있는 기능은 다음과 같습니다.
- HTTP_REFERER가 외부 사이트 인 경우 파일 확장자 목록에 대한 핫 링크를 차단해야합니다.
- 현재 도메인 (duh)에 대한 .htaccess에서 코드를 해독하지 않고 핫 링크를 허용해야합니다.
- 현재 도메인의 경우 http 및 https에서 작동해야합니다.
- 현재 도메인의 경우 www가 있고 www가없는 상태에서 작동해야합니다.
- 이 규칙에 예외 도메인을 추가 할 수 있어야합니다 (예 : Google 친구).이 도메인은 http 및 https에서 www와 함께 또는 www없이 또는 www없이 작동해야합니다.
이것이 내가 지금까지 달성 한 것입니다.
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com/.*$ [NC]
RewriteRule \.(gif|jpe?g|png|zipx?)$ - [NC,F]
</IfModule>
내 질문 :
mydomain.com
.htaccess에서 하드 코딩을 피하는 방법은 무엇입니까? (이 .htaccess를 각 도메인마다 수정하지 않고도 모든 도메인에 배포 할 수 있다면 좋을 것입니다.)- 내 RewriteRule에서 right
gif|jpe?g|png|zipx?
와 동일gif|jpg|jpeg|png|zip|zipx
합니까? (정규 표현식에서는 여전히 새롭습니다.) - 내 .htaccess에 내가 모르는 나쁜 것이 있습니까?
# 1의 경우 다소 가능하다는 것을 알고 있습니다. 내가 찾은 가장 가까운 것은이 코드 조각으로 도메인을 하드 코딩하지 않고 URL에서 www를 제거합니다. 내 질문 # 1 에이 방법을 사용하는 방법이 있습니까?
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]
최신 정보:
일반 이미지 대신 워터 마크 이미지를 제공하는 솔루션을 알고 있습니다. 그러나 나는 이런 종류의 해결책을 찾고 있지 않습니다. 모든 종류의 이진 파일 (zip, exe, iso, jpg, png, gif ...)에서 작동 하는 보편적 인 솔루션 (403 오류)을 원합니다 .