WordPress .htaccess 핫링크 방지, 리디렉션

워드프레스 .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?lycos7560.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?naver.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?nate.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?daum.net [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?paran.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.co.kr [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.co.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.co.kr [NC]
RewriteRule \.(pdf|PDF|zip|ZIP|gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG|7z|mp4|mp3)$ https://lycos7560.com/wp-content/uploads/2023/01/wtf.gif [NC,R,L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^p=([0-9]+)$
RewriteRule ^index\.php$ /%category%/%postname%/%post_id%/ [R=301,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

핫링크 방지

<IfModule mod_rewrite.c>
# Apache가 mod_rewrite 모듈이 설치되고 활성화된 경우에만 다음 코드를 실행하도록 지시

RewriteEngine On
#특정 .htaccess 파일에 대해 mod_rewrite 엔진을 활성화


RewriteCond %{HTTP_REFERER} !^$
# HTTP_REFERER 변수가 비어 있지 않은지(즉, 요청에 참조 URL이 있는지) 확인하는 조건을 설정

# 참조 URL이 허용된 도메인 목록에 없는지 확인하는 조건을 설정
# 검색 엔진 허용
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?lycos7560.com [NC] // 내 도메인
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?naver.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?nate.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?daum.net [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?paran.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.co.kr [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.co.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.co.kr [NC]

# 특정 파일 유형에 대한 요청을 "wtf.gif" 이미지 파일로 리디렉션하지만 참조 URL이 허용된 도메인 목록에 없는 경우에만 해당됩니다. 
# 이는 핫링크를 방지하거나 차단되거나 승인되지 않은 요청에 대해 특정 이미지를 표시하는 데 사용될 수 있습니다.
RewriteRule \.(pdf|PDF|zip|ZIP|gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG|7z|mp4|mp3)$ https://lycos7560.com/wp-content/uploads/2023/01/wtf.gif [NC,R,L]

</IfModule>

리디렉션

<IfModule mod_rewrite.c>
# Apache가 mod_rewrite 모듈이 설치되고 활성화된 경우에만 다음 코드를 실행하도록 지시

RewriteEngine On
#특정 .htaccess 파일에 대해 mod_rewrite 엔진을 활성화

RewriteBase /
# 모든 후속 RewriteRules에 대한 기본 URL을 설정합니다. 
# 이 경우 기본 URL을 도메인의 루트로 설정합니다.


# 쿼리 문자열(예: "?" 문자 뒤의 URL 부분)이 "p=([0-9]+)" 패턴과 일치하는지 확인 
# 하나 이상의 숫자가 있는 쿼리 문자열 매개 변수 "p"와 일치합니다
RewriteCond %{QUERY_STRING} ^p=([0-9]+)$


# 이전 RewriteCond가 일치하면 이 RewriteRule은 요청을 새 URL로 리디렉션 
# 특히 이전 스타일의 WordPress 영구 링크(예: https://lycos7560.com/?p=1234)에 대한 요청을 
# 새로운 스타일의 영구 링크로 리디렉션
# [R=301,L]RewriteRule 끝에 있는 은 Apache에게 영구 리디렉션(301)을 실행하고 추가 규칙(L) 처리를 중지하도록 지시
RewriteRule ^index\.php$ /%category%/%postname%/%post_id%/ [R=301,L]


# HTTP_AUTHORITISION이라는 환경 변수를 만들고 HTTP 요청의 Authorization 헤더 내용에 값을 설정합니다.
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]


# index.php이 줄은 요청을 일치시키고 플래그 를 사용하여 추가 재작성 규칙 처리를 중지하는 재작성 규칙입니다 [L]. 
RewriteRule ^index\.php$ - [L]

# %{REQUEST_FILENAME}이 두 줄은 요청한 파일명( )이 파일( !-f)로 존재하지 않는지( ) 디렉토리로 존재하지 않는지( !-d) 를 확인하는 재작성 조건 
# 기존 파일이나 디렉토리에 대한 요청을 다시 쓰는 것을 방지
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# /index.php이 마지막 줄은 남아 있는 모든 요청을 일반적으로 웹 애플리케이션의 전면 컨트롤러인 로 리디렉션하는 재작성 규칙
# [L]은 추가 재작성 규칙 처리를 중지
RewriteRule . /index.php [L]

</IfModule>

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤