mod_rewrite 설정으로 userid.domain.com 사용하기

mod_rewrite 설정으로 userid.domain.com 사용하기


원하는 결과는 "http://www.domain.com/~userid" 를 사용치 않고
"http://userid.domain.com" 또는 "http://blog.domain.com/userid" 와 같이 서비스 할 목적입니다.

간단히 정리해서 올립니다.
모두 3가지 부분으로 나누어 설명할수 있습니다.

1. 네임서버 설정
2. mod_rewrite 모듈 탑재
3. 아파치 conf 화일에 rewrite 관련 설정

 

1. 네임서버 설정
-------------------------------------------------------------
해당하는 zone 파일의 호스트 이름에 "*" (아스트리크) 문자를 사용합니다.

* IN A 111.222.333.444


2. mod_rewrite 모듈 탑재
-------------------------------------------------------------
(A) 아파치의 모듈들이 설치된 디렉토리 (/usr/local/apache/libexec 등)에 mod_rewrite.so 가 존재할 경우 "C" 로 건너뛰면 됩니다.

(B) 아파치의 모듈들이 설치된 디렉토리에 mod_rewrite.so 가 없는 경우.

enb CFLAGS="-DEAPI" \
./configure \
--prefix=/etc/httpd \
--enable-module=so \
--enable-shared=max \
--enable-module=rewrite \
--enable-shared=rewrite

make
make install


(C) 아파치 conf 화일에서 다음을 확인합니다.

LoadModule rewrite_module livexec/mod_rewrite.so
AddModule mod_rewrite.c


3. 아파치 conf 화일에 rewrite 관련 설정
-------------------------------------------------------------

ServerAdmin admin@domain.com
DocumentRoot /home/httpd/html
ServerName www.domain.com
ServerAlias domain.com *.domain.com
ErrorLog logs/domain.com-error_log
CustomLog logs/domain.com-access_log common

### Vitual User Hosts

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteCond %{HTTP_HOST} !^domain\.com$
RewriteCond %{HTTP_HOST} ^[^.]+\.domain\.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.domain\.com(.*) /home/$1/html$2

---------------------------------------------------------------------------------

 

추가적으로 모듈만 컴파일 해서 추가할 경우(DSO로 컴파일 했을 경우만 해당)


1.3.X 버젼에서 mod_rewrite 적재

아파치소스(./configure 명령을 한번도 내리지 않은 원본소스를 말함) 디렉토리에서

# ./configure --enable-module=rewrite
# cd src/modules/standard
# gcc -shared -o mod_rewrite.so mod_rewrite.o
# cp mod_rewrite.so /usr/local/apache/libexec/

2.X 버젼에서

# /usr/local/apache/apxs -c -I/usr/include/gdbm mod_rewrite.c
# gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
# /usr/local/apache/apxs -i mod_rewrite.so


컴파일 이후에 추가해야 하는 라인도 아파치 버젼에 따라 다릅니다.


2.X 이후 버젼은 아래와 같습니다.
----------------------------------------------------------
LoadModule rewrite_module modules/mod_rewrite.so

< IfModule mod_rewrite.c>
RewriteEngine On
Rewriterule ^/(.*)$ /index.php?$1
< /IfModule>
----------------------------------------------------------
위와 같이 하면 index.php 파일은 이름 없이도 불러와집니다.


1.3.X 버젼에서는 아래와 같습니다.

LoadModule rewrite_module libexec/mod_rewrite.so

AddModule mod_rewrite.c

LoadModule은 관련된 리스트가 있는 맨 아래에 추가 해주시고 AddModule도 역시
관련 리스트가 있는 맨 아래에 추가해주시면 됩니다.

출처 : http://blog.naver.com/ipringles/80029726827

'WebDevelop > Apache' 카테고리의 다른 글

apache 403 forbidden error  (0) 2018.07.31
mod_rewrite를 이용한 편리한 가상 도메인 운영방법  (0) 2008.10.20
mod_rewrite 설치, 설정  (0) 2008.10.20
Return top