📖
Apache에서 특정 폴더 또는 파일 만 HTTP로 접근하게 만드는 .htaccess 설정 (HTTP로 강제 리디렉션)
페이지 정보
본문
https로 접속되는 사이트에서 특정 폴더만 http로 강제 접속하도록 할 수 있습니다.
이를 위해 .htaccess 파일을 수정하여 특정 경로에 대해서만 HTTP 프로토콜을 사용하도록 할 수 있습니다.
.htaccess 코드
"예외 경로만 제외하고 나머지는 전부 HTTPS로 강제 리디렉션"하는 표준적 구성입니다[code]RewriteEngine On
# 1. 예외 경로: HTTPS 강제 리디렉션에서 제외
RewriteCond %{REQUEST_URI} ^/특정 폴더/
ewriteRule ^ - [L]
# 2. 나머지 모든 요청은 HTTPS로 강제 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]📁 이 코드는 사이트 루트에 있는 .htaccess 파일에 들어가야 합니다.
💡RewriteCond에서 여러 경로 조건을 동시에 처리하려면 정규식으로 OR 조건을 사용하면 됩니다.[code]RewriteCond %{REQUEST_URI} ^/(myhome/broadcast/(ply|live)|media/)[/code]🔍 설명:
^/(myhome/cast/(ply|live)|media/)
→ /myhome/cast/ply, /myhome/cast/live, /media/ 시작 경로 모두 매칭됩니다.
RewriteRule ^ - [L]
→ 조건에 맞는 경우 아무 작업 없이 종료 ([L]: 마지막 규칙)
해당 경로에 대해서는 rewrite 중지 (즉, 아래 HTTPS 강제 규칙은 무시됨)
필요하다면 /media 하위 경로까지 포함하도록 조건을 좀 더 세분화할 수도 있습니다.
예: /media/something/까지 포함하려면 ^/(myhome/cast/(ply|live)|media/.*) 형태도 가능합니다.
✅ 특정 파일(ply.php)만 HTTP로 접근하게 만드는 .htaccess 설정[code]RewriteEngine On
# ply.php를 HTTPS로 요청한 경우 → HTTP로 리디렉션
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/cast/ply\.php$
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 그 외 모든 요청은 HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/cast/ply\.php$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]
📌 설명
첫 번째 블록은 ply.php 파일을 HTTPS로 접속했을 때 → HTTP로 보내줍니다.
두 번째 블록은 나머지 모든 파일이 HTTP로 접속됐을 때 → HTTPS로 바꿔줍니다.
정규표현식에서 .은 아무 문자이므로 반드시 \. 으로 escape 해야 합니다.
RewriteCond %{REQUEST_URI}는 쿼리스트링 제외한 경로만 비교합니다.
✅ 주의사항
.htaccess 파일은 반드시 사이트 루트 디렉터리 또는 해당 폴더에 위치해야 합니다.
AllowOverride All이 Apache 설정에 적용되어 있어야 .htaccess가 동작합니다.
리디렉션 캐시 방지를 위해 브라우저 쿠키/캐시 지우고 확인하세요.
✅ 문서 2개만 HTTP 접근 허용 예시 (pro.php, proxy.php)[code]RewriteEngine On
# ply.php 또는 proxy.php를 HTTPS로 접속한 경우 → HTTP로 리디렉션
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/cast/(pro\.php|proxy\.php)$
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 그 외 모든 요청은 HTTP면 → HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/cast/(pro\.php|proxy\.php)$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ 추가 문서가 더 있다면?
(pro\.php|proxy\.php|다른문서\.php) 형식으로 계속 추가하시면 됩니다.
예: ^/cast/(pro\.php|proxy\.php|audio\.php)$
✅ 실전 .htaccess 설정 예제
📍1. 웹 루트 또는 /home/ 폴더 .htaccess (HTTPS 유지, 단 ply 예외)[code]RewriteEngine On
# ply 폴더는 HTTPS로 리디렉션하지 않음
RewriteCond %{REQUEST_URI} ^/home/cast/ply/
RewriteRule ^ - [L]
# 그 외는 HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]
📍2. /home/cast/ply/.htaccess (HTTP로 강제 리디렉션)[code]RewriteEngine On
# HTTPS일 경우 HTTP로 리디렉션
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ ply 폴더 안에만 .htaccess를 따로 두는 이유는, 특정 디렉토리만 예외 처리하고 관리하기 쉽게 하기 위함입니다.
✅ 추가 확장 예시
다른 폴더들도 제외하고 싶을 때는 이렇게 확장 가능해요:[code]RewriteCond %{REQUEST_URI} ^/home/cast/(ply|live|test|demo)/[/code]
✅ 1. 특정 확장자만 HTTPS 리디렉션 제외
예를 들어 .m3u8, .ts 파일 요청만 HTTP로 유지하고 싶다면:[code]# 확장자가 .m3u8 또는 .ts 인 경우 HTTPS로 리디렉션하지 않음
RewriteCond %{REQUEST_URI} \.(m3u8|ts)$
RewriteRule ^ - [L]
# 그 외는 HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ .m3u8, .ts 확장자를 가진 스트리밍 파일은 HTTP 유지
✅ 나머지 요청은 HTTPS로 이동
✅ 2. 특정 IP만 HTTPS 리디렉션 제외
예: 192.168.0.100 사용자만 HTTP로 접속 허용하고, 나머지는 HTTPS로 리디렉션[code]# 특정 IP는 리디렉션 제외
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.100$
RewriteRule ^ - [L]
# 그 외는 HTTPS 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ 내부 IP만 HTTP 접속 가능
✅ 외부 사용자는 항상 HTTPS로 리디렉션
✅ 3. 조합: 경로 + 확장자 + IP 조건[code]# 경로 + 확장자 + IP 조합 예외 처리
RewriteCond %{REQUEST_URI} ^/home/broadcast/live/
RewriteCond %{REQUEST_URI} \.ts$
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.100$
RewriteRule ^ - [L]
# 그 외는 HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code].ts나 .m3u8 스트리밍은 낮은 레이턴시를 위해 HTTP 유지할 수 있지만,
보안 상 전체 HTTPS 전환이 권장됩니다.
🚀 일반 PHP 사이트에서 HTTPS를 기본으로 사용하되,
특정 경로(/myhome/cast/ply, /myhome/cast/live, /media/)는
HTTP로 유지하고 싶은 경우에 적합한 .htaccess 예시입니다.
✅ .htaccess 전체 구성 예시[code]RewriteEngine On
# 1. HTTP 예외 경로 (해당 경로는 HTTPS로 강제 리디렉션하지 않음)
RewriteCond %{REQUEST_URI} ^/(myhome/cast/(ply|live)|media/.*)
RewriteRule ^ - [L]
# 2. 나머지 모든 요청은 HTTPS로 강제 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ 의도한 동작:
/myhome/cast/ply HTTP 유지
/myhome/cast/live/abc HTTP 유지
/media/anything.mp3 HTTP 유지
/bbs/board.php?bo_table=xxx HTTPS로 강제 이동
/index.php HTTPS로 강제 이동
✅ 위치
이 .htaccess는 Apache 2.4 기준으로 DocumentRoot (htdocs/ 또는 public_html/)에 위치해야 합니다.
mod_rewrite가 켜져 있어야 하고, AllowOverride All 설정도 필요합니다 (httpd.conf 또는 apache2.conf).
이를 위해 .htaccess 파일을 수정하여 특정 경로에 대해서만 HTTP 프로토콜을 사용하도록 할 수 있습니다.
.htaccess 코드
"예외 경로만 제외하고 나머지는 전부 HTTPS로 강제 리디렉션"하는 표준적 구성입니다[code]RewriteEngine On
# 1. 예외 경로: HTTPS 강제 리디렉션에서 제외
RewriteCond %{REQUEST_URI} ^/특정 폴더/
ewriteRule ^ - [L]
# 2. 나머지 모든 요청은 HTTPS로 강제 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]📁 이 코드는 사이트 루트에 있는 .htaccess 파일에 들어가야 합니다.
💡RewriteCond에서 여러 경로 조건을 동시에 처리하려면 정규식으로 OR 조건을 사용하면 됩니다.[code]RewriteCond %{REQUEST_URI} ^/(myhome/broadcast/(ply|live)|media/)[/code]🔍 설명:
^/(myhome/cast/(ply|live)|media/)
→ /myhome/cast/ply, /myhome/cast/live, /media/ 시작 경로 모두 매칭됩니다.
RewriteRule ^ - [L]
→ 조건에 맞는 경우 아무 작업 없이 종료 ([L]: 마지막 규칙)
해당 경로에 대해서는 rewrite 중지 (즉, 아래 HTTPS 강제 규칙은 무시됨)
필요하다면 /media 하위 경로까지 포함하도록 조건을 좀 더 세분화할 수도 있습니다.
예: /media/something/까지 포함하려면 ^/(myhome/cast/(ply|live)|media/.*) 형태도 가능합니다.
✅ 특정 파일(ply.php)만 HTTP로 접근하게 만드는 .htaccess 설정[code]RewriteEngine On
# ply.php를 HTTPS로 요청한 경우 → HTTP로 리디렉션
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/cast/ply\.php$
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 그 외 모든 요청은 HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/cast/ply\.php$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]
📌 설명
첫 번째 블록은 ply.php 파일을 HTTPS로 접속했을 때 → HTTP로 보내줍니다.
두 번째 블록은 나머지 모든 파일이 HTTP로 접속됐을 때 → HTTPS로 바꿔줍니다.
정규표현식에서 .은 아무 문자이므로 반드시 \. 으로 escape 해야 합니다.
RewriteCond %{REQUEST_URI}는 쿼리스트링 제외한 경로만 비교합니다.
✅ 주의사항
.htaccess 파일은 반드시 사이트 루트 디렉터리 또는 해당 폴더에 위치해야 합니다.
AllowOverride All이 Apache 설정에 적용되어 있어야 .htaccess가 동작합니다.
리디렉션 캐시 방지를 위해 브라우저 쿠키/캐시 지우고 확인하세요.
✅ 문서 2개만 HTTP 접근 허용 예시 (pro.php, proxy.php)[code]RewriteEngine On
# ply.php 또는 proxy.php를 HTTPS로 접속한 경우 → HTTP로 리디렉션
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/cast/(pro\.php|proxy\.php)$
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 그 외 모든 요청은 HTTP면 → HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/cast/(pro\.php|proxy\.php)$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ 추가 문서가 더 있다면?
(pro\.php|proxy\.php|다른문서\.php) 형식으로 계속 추가하시면 됩니다.
예: ^/cast/(pro\.php|proxy\.php|audio\.php)$
✅ 실전 .htaccess 설정 예제
📍1. 웹 루트 또는 /home/ 폴더 .htaccess (HTTPS 유지, 단 ply 예외)[code]RewriteEngine On
# ply 폴더는 HTTPS로 리디렉션하지 않음
RewriteCond %{REQUEST_URI} ^/home/cast/ply/
RewriteRule ^ - [L]
# 그 외는 HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]
📍2. /home/cast/ply/.htaccess (HTTP로 강제 리디렉션)[code]RewriteEngine On
# HTTPS일 경우 HTTP로 리디렉션
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ ply 폴더 안에만 .htaccess를 따로 두는 이유는, 특정 디렉토리만 예외 처리하고 관리하기 쉽게 하기 위함입니다.
✅ 추가 확장 예시
다른 폴더들도 제외하고 싶을 때는 이렇게 확장 가능해요:[code]RewriteCond %{REQUEST_URI} ^/home/cast/(ply|live|test|demo)/[/code]
✅ 1. 특정 확장자만 HTTPS 리디렉션 제외
예를 들어 .m3u8, .ts 파일 요청만 HTTP로 유지하고 싶다면:[code]# 확장자가 .m3u8 또는 .ts 인 경우 HTTPS로 리디렉션하지 않음
RewriteCond %{REQUEST_URI} \.(m3u8|ts)$
RewriteRule ^ - [L]
# 그 외는 HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ .m3u8, .ts 확장자를 가진 스트리밍 파일은 HTTP 유지
✅ 나머지 요청은 HTTPS로 이동
✅ 2. 특정 IP만 HTTPS 리디렉션 제외
예: 192.168.0.100 사용자만 HTTP로 접속 허용하고, 나머지는 HTTPS로 리디렉션[code]# 특정 IP는 리디렉션 제외
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.100$
RewriteRule ^ - [L]
# 그 외는 HTTPS 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ 내부 IP만 HTTP 접속 가능
✅ 외부 사용자는 항상 HTTPS로 리디렉션
✅ 3. 조합: 경로 + 확장자 + IP 조건[code]# 경로 + 확장자 + IP 조합 예외 처리
RewriteCond %{REQUEST_URI} ^/home/broadcast/live/
RewriteCond %{REQUEST_URI} \.ts$
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.100$
RewriteRule ^ - [L]
# 그 외는 HTTPS로 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code].ts나 .m3u8 스트리밍은 낮은 레이턴시를 위해 HTTP 유지할 수 있지만,
보안 상 전체 HTTPS 전환이 권장됩니다.
🚀 일반 PHP 사이트에서 HTTPS를 기본으로 사용하되,
특정 경로(/myhome/cast/ply, /myhome/cast/live, /media/)는
HTTP로 유지하고 싶은 경우에 적합한 .htaccess 예시입니다.
✅ .htaccess 전체 구성 예시[code]RewriteEngine On
# 1. HTTP 예외 경로 (해당 경로는 HTTPS로 강제 리디렉션하지 않음)
RewriteCond %{REQUEST_URI} ^/(myhome/cast/(ply|live)|media/.*)
RewriteRule ^ - [L]
# 2. 나머지 모든 요청은 HTTPS로 강제 리디렉션
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301][/code]✅ 의도한 동작:
/myhome/cast/ply HTTP 유지
/myhome/cast/live/abc HTTP 유지
/media/anything.mp3 HTTP 유지
/bbs/board.php?bo_table=xxx HTTPS로 강제 이동
/index.php HTTPS로 강제 이동
✅ 위치
이 .htaccess는 Apache 2.4 기준으로 DocumentRoot (htdocs/ 또는 public_html/)에 위치해야 합니다.
mod_rewrite가 켜져 있어야 하고, AllowOverride All 설정도 필요합니다 (httpd.conf 또는 apache2.conf).
#전주영 골든베스트 - 1. 부초같은 인생 #[트로트1번지 193집] 67.정숙이 - 갑돌이와 갑순이 #박우철[`82 힛트송 총결산집]-09 임 찾아 가는 길 #백천만[`85 조용한 노래모음]B03 알뜰한 당신 #변해림 찬불가2집-03-임의 숨결 #아련[`10]-그 다음은 나도 몰라요 #이박사[신바람 이박사 2집]-15.한 많은 대동강 #패티김[`79 국제가요제 작품집]-B04 바닷 가에서 #송인 - 220 아담과 이브처럼 6(나 후아 배 종옥) #김희재 - 너를 만나서(사랑의 콜센타 54화)
#경부선 캬바레 - 60. 사모곡 #장미원 청량리콜라텍 종합편 1집 - 5. 청춘고백 #박진석 추억의 D800-05. 저리가 #서우 앗싸라비야 관광 디스코 메들리-31. 천년지기 #유지성 최신가요박사메들리-08. 사랑은 눈물의 씨앗 #장미원 콜라텍 현장-099. 뿐이고 #[트로트 1번지 243집] 79.하길이 - 무시로 #조아애 外 [빙빙 캬바레 1집] - B01.여자여자(함중아) #민승아[불타는 연가 2]-18.갈팡질팡 하지마 #반반 프로젝트 1집[`10 반반 프로젝트]-07 아니 벌써 #성민호[21세기 트로트 옛가요 2집]-13 목포의 눈물 #이도송 & 김상진[`07 바람의 남자]-05 어느 여인에게 #이연주[따따봉]-12 사랑은장난이아니랍니다 #주용아[노래방 24시 2집]-A10.우연히 정든사람 #진서영[`07 엽기댄스 CD2]-06 벌 #홍성아[라이브쇼]-34 내가 바보야(도) #임유나[`08 상상마당(야 바다닷)] - 01 야 바다닷 #조용길[`70 사랑에 우는밤] - B05 사랑해요(정경자) #청개구리(김두수)[`03 콘서트] - 08.이정미 - 이정미 인생이야기(맨트) #허일[`00 대구블루스] - 07 종이학
#최호남 해남 콜라텍-41. 잠자는공주 #윤시내.조용필[`81 숨은 노래들]-A03.(조)모두 몰라요 #이난실[`90 통일 열차]-B07 무정한 세월 #장미[`11 남자는 울지 않는다]-16 시계바늘 #조연화[샛별 아가씨 1집]-A05.네박자 #한국 가요전사 제02집[`76 타향살이]-A02.알뜰한 당신[황금심] #Backstreet Boys - Straight Through My Heart #바이브 1집 - 15 - Vibe· · · Real Life· · · #샵 1집 - 02. 미(美) #김다현&은가은 - 막걸리 한잔(화요일은 밤이 좋아)
댓글목록
등록된 댓글이 없습니다.
![]() ![]() |