일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 배열
- selinux
- post_type
- Ajax
- virsualhost
- 비동기호출
- 페이지전환효과
- 우분투 npm 설치
- 보안인증서
- SSL
- MySQL
- 날짜변환
- 구글뷰어
- Vanilla JS
- 자바스크립트
- 글자 수 제한
- iframe
- 리사이즈
- 정규식
- 우분투
- 정부 서비스 가이드라인
- 디지털 정부서비스ui/ux
- .htaccess
- 날짜비교
- 애니메이트
- 301 리다이렉트
- JS
- JavaScript
- 글자수제한
- ip직접접근차단
- Today
- Total
더 나은 프로그래머가 되자
다중 도메인 사용시 도메인별 다른 디렉토리 연결하기 .htaccess 본문
도메인을 보면 서브도메인 서비스 형식은 아래와 같다
[*****.naver.com] 이러한 서브도메인에 특정 주소지 또는 IP를 입력하여 리다이렉트 시키거나 포워딩을 할 수 있는데, 문제는 하위폴더는 적용되지 않는다.
[cafe.naver.com]이라 할 때 연결되는 포워딩 대상이 [cafe2.naver.com]과 같은 형식이면 무관하나, 하위 디렉토리나 디렉토리내 파일 즉, [cafe2.naver.com/dir] 또는 [cafe2.naver.com/file.html]과 같은 형식은 적용되지 않는다는 것이다.
이러한 문제를 보완하려면 meta소스 또는 자바스크립트를 이용한 리다이렉팅으로 처리하면 되지만, 이는 번거로울 뿐 아니라 index파일의 위치에 따라 안될 수 있다
여기서는 .htaccess를 이용하여 mod_rewrite가 꼭 지원되야 하는 조건이다.
만약 SSH에서 apache 또는 tomcat의 환경을 직접 설정할 수 있는 상태라면 아파치 환경설정 파일을 열어 mod_rewrite모듈을 찾아본다.
혹시 모듈 프로시저가 없다면 입력해주자
ntp.poisoneye.info접속시 같은 디렉토리 내에 있는 폴더 안으로 포워딩 한다고 볼 수 있다.
접속주소 |
포워딩주소 |
ntp.poisoneye.info |
ntp.poisoneye.info/ntp/index.php |
ftp.poisoneye.info |
ftp.poisoneye.info/ftp/index.php |
str.poisoneye.info |
str.poisoneye.info/str/index.php |
물론 구지 아파치 설정파일을 건들이지 않아도 무관하다, index.php가 상주해있는 폴더에 .htaccess파일을 생성하여 조건부 rewrite사용을 할 수 있기 때문이다.
mod_rewrite에 대한 조건부 설정은 다양하니 아래를 참고해보자.
www.aaa.com으로 시작하는 주소만 www.bbb.net로 보내기
: aaa.com의 뿌리 자료방(루트 디렉토리)의 .htaccess에 추가한다.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.aaa\.com)
RewriteRule (.*) http://www.bbb.net/$1 [L]
www.aaa.com과 aaa.com으로 시작하는 주소를 www.bbb.net로 보내기
: aaa.com의 뿌리 자료방의 .htaccess에 추가한다.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.aaa\.com|aaa\.com)
RewriteRule (.*) http://www.bbb.net/$1 [L]
aaa.com을 www.aaa.com으로 바꾸기
: aaa.com의 뿌리 자료방 .htaccess에 추가한다.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(aaa\.com)
RewriteRule (.*) http://www.aaa.com/$1 [L]
aaa.com을 aaa.com/bbb로 보내기
: aaa.com의 뿌리 자료방 .htaccess에 추가한다.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(aaa\.com|www\.aaa\.com)
RewriteRule (.*) /bbb/$1 [L]
[L]은 이후에 뒤에 구문이 나오든 그 줄에서 끝낸다는 뜻이다.
aaa.com/bbb를 하위 주소까지 ccc.net로 보내기 (영구 이동)
# aaa.com/bbb/.htaccess에 추가
RewriteEngine On
RewriteRule (.*) http://www.ccc.net/$1 [R=301,L]
또는
# aaa.com/.htaccess에 추가
RewriteEngine On
RewriteRule ^bbb/(.*) http://www.ccc.net/$1 [R=301,L]
여기서 R=301은 그 주소로 영구 이동하는 것을 나타낸다. 이렇게 하면 도메인 주소를 바꿨을 때에 검색기들이 알아 차리고, 옛 주소를 새 주소로 갱신할 수 있다.
aaa.com이 들어가는 모든 주소(서브도메인 포함)를 bbb.net로 보내기
: aaa.com의 뿌리 자료방 .htaccess에 추가한다.
RewriteEngine On
RewriteCond %{HTTP_HOST} aaa\.com
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.aaa\.com(.*) http://$1.bbb.net/$2 [L]
RewriteRule ^aaa\.com(.*) http://bbb.net/$1 [L]
출처: https://wecall.tistory.com/161 [We call to internet]
'언어 > PHP' 카테고리의 다른 글
쿼리스트링 배열에 담기 parse_str() (0) | 2021.01.12 |
---|---|
줄바꿈(엔터) 개행 예약 상수 PHP_EOL (0) | 2020.07.01 |
https 체크 및 리다이렉트 (0) | 2019.07.08 |
preg_match 함수 정규식을 이용한 <IMG> 태그 추출 (0) | 2019.07.04 |
php 배열 재정렬 (0) | 2019.02.07 |