[Linux] Apache 2.x에서 Host를 Redirect하여 연결하기
호스트를 원하는 방향으로 다시 향할 수 있도록 하는 방법에 대해서 몇가지 소개하고자 합니다.
1. 첫페이지(index)를 통해 방향을 재탐색하는 방법입니다.
<META HTTP-EQUIV="Refresh" Content="0; URL=http://www.company.com/dir1/">
<html>
<head>
<META HTTP-EQUIV="Refresh" Content="3; URL=http://www.company.com/dir1/">
</head>
<body>
This page will forward to http://www.company.com/dir1/ in three seconds.
<p>
Please update your links.
</body>
</html>
2. cgi를 이용한 재 탐색 방법입니다. (mod-cgi)
설정 파일 명 : httpd.conf
ScriptAlias / /var/www/cgi-bin/redirect-script/
설정 파일 명 :
/var/www/cgi-bin/redirect-script
#!/usr/bin/perl
print "Status: 301 Moved\r\n" .
"Location: http://www.new-domain.com/\r\n" .
"\r\n";
또는
#!/usr/bin/perl -w
use strict;
use CGI qw/:standard/;
print redirect('http://www.new-domain.com');
3. PHP를 이용한 방법 입니다.
<?php
header("Location: http://www.new-domain.com/");
?>
4. 자바스크립트를 이용한 방법입니다.
<html>
<head>
<script language="Javascript" type="text/javascript">
<!-- Hide script
//<![CDATA[
window.location.href="http://www.new-domain.com/"
//]]> End script hiding -->
</script>
</head>
</html>
5. Apache 서버 모듈을 이용하는 방법입니다.(mod_rewrite)
RewriteEngine On
RewriteRule /.* http://www.new-domain.com/ [R]
6. Apache 서버 모듈을 이용하는 방법입니다.(mod_alias)설정 파일명 : httpd.conf
1. Redirect Domain:
Redirect / http://www.
new-domain.com/
또는
Redirect permanent /
http://www.new-domain.com/
참고 : 재탐색(Redirect)을 지시하기 전에 앞서 Alias(별명)과 ScriptAlias를 지시해야 합니다.
다른 "재탐색(Redirect) 옵션들 포함 :
(임시 오류 번호 : 302는 기본값 - 임시적으로 재탐색되는 상태)
'오류 번호 303'이라고도 불리고 See other라는 메시지로 보여지는 것은 다른 것과 대체하던지, '오류 번호 404' 를 영구히 제거해야만 합니다.
예제) vhost를 이용한 redirect(재탐색) 기법
<VirtualHost XXX.XXX.XXX.XXX>
ServerName directtolinux.com
ServerAlias www.directtolinux.com
ServerAlias direct-to-linux.com
ServerAlias www.direct-to-linux.com
ServerAlias digitalpenguins.com
ServerAlias www.digitalpenguins.com
Redirect permanent / http://www.yolinux.com/
</VirtualHost>
7. Apache 서버에서 .htaccess 파일을 이용하여 재탐색하기.vi나 vim에디터를 이용하여 사용자 계정 public_html(사용자 홈페이지 디렉토리 - 설정하신 폴더에 넣어주세요)에 .htaccess를 수정하거나 만듭니다.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yolinux.com
RewriteRule ^(.*)$ http://www.yolinux.com/$1 [R=permanent,L]
SP. Apache 서버에서 httpd.conf와 .htaccess 파일을 이용한 재탐색 기법.
설정 파일명(위치) : /etc/httpd/conf/httpd.conf (apache서버를 설치한 폴더 위치를 찾아서 하시기 바랍니다.)
아래의 예제는 현재 .htaccess를 사용할 수 없는 상태를 뜻하고 있습니다.
<Directory />
AllowOverride None
</Directory>
AllowOverride All로 바꾸시면 .htaccess를 사용하실 수 있습니다.
설정 파일명(위치) : .htaccess(/home/domain/public_html/.htaccess)에 위치합니다.
/home/domain/public_html/.htaccess 에 생성하신 도메인이 아래와 같이 보이는 것과 같이 향하게 됩니다.
특정 도메인으로 이동
Redirect 301 / http://www.new-domain.com/
특정 파일로 이동
Redirect 301 /old-page-1.html http://www.newdomain.com/new-page-1.html
Redirect 301 /old-page-2.html http://www.newdomain.com/new-page-2.html