웹사이트 리디렉션 · 2 min read · Nov 26, 2025

Apache2: 모바일 또는 일반 웹 사이트로 사용자를 리디렉션하는 방법 (mod_rewrite 사용)

스마트폰과 태블릿(아이폰, 아이패드, 안드로이드 폰 및 태블릿, 블랙베리 등)의 대규모 증가로 인해 웹 사이트의 모바일 버전을 만드는 것을 고려했을 수 있습니다. 이 튜토리얼에서는 방문자가 모바일 장치를 사용하는 경우 웹 사이트의 모바일 버전을 제공하고, 방문자가 일반 데스크탑 PC를 사용하는 경우 정규 버전을 제공하도록 Apache를 구성하는 방법을 설명합니다. 이는 Apache의 리라이트 모듈을 통해 달성할 수 있습니다.

1 사전 참고

이 튜토리얼에서 내 “정상” 웹 사이트는 http://www.example.comhttp://example.com에서 접근할 수 있으며, 내 모바일 사이트는 http://m.example.com이라고 합니다. 이러한 가상 호스트는 이미 내 시스템에 존재하므로 설정 방법에 대해서는 다루지 않겠습니다.

2 mod_rewrite 활성화

먼저 Apache 모듈 mod_rewrite가 활성화되어 있는지 확인해야 합니다. 이 모듈은 httpd 리디렉션, 아파치 리디렉션 및 아파치 URL 재작성 기능을 제공합니다. Debian/Ubuntu에서는 다음과 같이 활성화할 수 있습니다:

a2enmod rewrite

그 후 Apache를 재시작합니다 - Debian/Ubuntu의 경우 명령은:

/etc/init.d/apache2 restart

3 .htaccess 파일에서 리라이트 규칙을 허용하도록 Apache 구성

내 “정상” 웹 사이트 www.example.com / example.com은 가상 호스트 구성 파일 /etc/apache2/sites-available/www.example.com.vhost와 문서 루트 /var/www/www.example.com/web을 가지고 있습니다.

내 모바일 사이트 m.example.com은 가상 호스트 구성 파일 /etc/apache2/sites-available/m.example.com.vhost와 문서 루트 /var/www/www.example.com/mobile을 가지고 있습니다.

각 사이트에 대한 리라이트 규칙을 .htaccess 파일에 배치하고 싶습니다(가상 호스트 구성 파일에 직접 배치하는 것도 가능하지만) Apache HTTP 서버가 읽을 수 있도록 합니다. 따라서 두 .htaccess 파일이 리라이트 지시문을 포함할 수 있도록 가상 호스트 구성을 수정해야 합니다. 이를 위해 AllowOverride All이라는 줄을 추가할 수 있습니다(이는 .htaccess가 가상 호스트 구성의 모든 설정을 재정의할 수 있도록 허용합니다):

vi /etc/apache2/sites-available/www.example.com.vhost
[...]
        
                AllowOverride All
    
[...]
vi /etc/apache2/sites-available/m.example.com.vhost
[...]
        
                AllowOverride All
        
[...]

그 후 Apache를 재시작합니다:

/etc/init.d/apache2 restart

4 리라이트 규칙 만들기

이제 “정상” 웹 사이트 www.example.com / example.com에 대한 리라이트 규칙을 만들어 모바일 장치를 사용하는 모든 사용자를 모바일 버전 m.example.com으로 리디렉션합니다 - 여기서는 관련 장치/사용자 에이전트인 Android, Blackberry, Googlebot-mobile(구글의 모바일 검색 봇), IE Mobile, iPad, iPhone, iPod, Opera Mobile, PalmOS 및 WebOS에 집중합니다.

/var/www/www.example.com/web/.htaccess 파일은 다음과 같습니다:

vi /var/www/www.example.com/web/.htaccess

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC]
RewriteRule ^$ http://m.example.com/ [L,R=302]

우리의 모바일 웹 사이트 m.example.com에 대해 모바일 장치를 사용하지 않는 모든 사용자를 “정상” 웹 사이트 www.example.com / example.com으로 리디렉션하는 리라이트 규칙은 다음과 같습니다 - 이전 .htaccess 파일의 RewriteCond 조건을 부정했습니다:

vi /var/www/www.example.com/mobile/.htaccess

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "!(android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos)" [NC]
RewriteRule ^$ http://www.example.com/ [L,R=302]

이제 리디렉션 지시문을 설정했습니다! 이제 테스트를 해볼 수 있습니다. 예를 들어, 표준 데스크탑 브라우저로 m.example.com을 방문해 보세요:

모든 것이 잘 진행된다면 www.example.com으로 리디렉션되어야 합니다:

이제 모바일 장치(여기서는 안드로이드 폰을 사용합니다)로 www.example.com에 접속해 보세요:

m.example.com으로 리디렉션되어야 합니다:

5 링크

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.