웹사이트 검색

Apache 2는 사용된 장치를 기반으로 리디렉션 및 재작성


이 페이지에서

  1. 1 서문
  2. 2 mod_rewrite 활성화\n
  3. 3 .htaccess 파일에서 재작성 규칙을 허용하도록 Apache 구성\n
  4. 4 재작성 규칙 만들기
  5. 5개의 링크

iPhone, iPad, Android 휴대폰 및 태블릿, BlackBerries 등과 같은 스마트폰 및 태블릿의 엄청난 증가 이후 웹 사이트의 모바일 버전을 만드는 것을 고려했을 수 있습니다. 이 자습서에서는 방문자가 모바일 장치를 사용하는 경우 웹 사이트의 모바일 버전을 제공하고 방문자가 표준 데스크톱 PC를 사용하는 경우 일반 버전을 제공하도록 Apache를 구성하는 방법을 설명합니다. 이는 Apaches 재작성 모듈로 달성할 수 있습니다.

1 서문

이 자습서에서 내 "일반" 웹사이트는 http://www.example.com 및 http://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에는 vhost 구성 파일 /etc/apache2/sites-available/www.example.com.vhost와 문서 루트 /var/www/www.example이 있습니다. .com/web.

내 모바일 사이트 m.example.com에는 vhost 구성 파일 /etc/apache2/sites-available/m.example.com.vhost와 문서 루트 /var/www/www.example.com/mobile이 있습니다.

get read by apache http 서버를 사용하여 각 사이트에 대한 재작성 규칙을 .htaccess 파일에 배치하고 싶습니다(vhost 구성 파일에 직접 배치할 수도 있음). 따라서 두 .htaccess 파일 모두 재작성 지시문을 포함할 수 있도록 먼저 가상 호스트 구성을 수정해야 합니다. AllowOverride All 행으로 이 작업을 수행할 수 있습니다(.htaccess가 가상 호스트 구성, 서버 구성의 모든 설정을 재정의할 수 있음).

vi /etc/apache2/sites-available/www.example.com.vhost
[...]
        <Directory /var/www/www.example.com/web/>
                AllowOverride All
	</Directory>
[...]
vi /etc/apache2/sites-available/m.example.com.vhost
[...]
        <Directory /var/www/www.example.com/mobile/>
                AllowOverride All
        </Directory>
[...]

나중에 Apache를 다시 시작합니다.

/etc/init.d/apache2 restart

4 재작성 규칙 만들기

이제 모바일 장치의 모든 사용자를 모바일 버전 m.example.com으로 리디렉션하는 "일반" 웹사이트 www.example.com/example.com에 대한 재작성 규칙을 만들어 보겠습니다. 관련 장치/사용자 에이전트에 중점을 둡니다. 여기에는 Android, Blackberry, Googlebot-mobile(Google의 모바일 검색 봇), IE Mobile, iPad, iPhone, iPod, Opera Mobile, PalmOS 및 WebOS가 있습니다.

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

vi /var/www/www.example.com/web/.htaccess
<IfModule mod_rewrite.c>
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]
</IfModule>

모바일 웹 사이트 m.example.com의 경우 모바일 장치를 사용하지 않는 모든 사용자를 "일반" 웹 사이트 www.example.com/example.com으로 리디렉션하는 재작성 규칙은 다음과 같습니다. RewriteCond를 부정했습니다. 이전 .htaccess 파일의 조건:

vi /var/www/www.example.com/mobile/.htaccess
<IfModule mod_rewrite.c>
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]
</IfModule>

그게 다야, 리디렉션 지시문을 설정했습니다! 이제 일부 테스트를 수행할 수 있습니다. 표준 데스크탑 브라우저로 m.example.com을 방문하십시오.

모든 것이 순조롭게 진행되면 www.example.com으로 리디렉션됩니다.

이제 모바일 장치(여기서는 Android 휴대폰 사용)로 테스트하고 www.example.com으로 이동합니다.

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

5 링크

  • 아파치: http://httpd.apache.org/
  • Apache 모듈 mod_rewrite: http://httpd.apache.org/docs/current/mod/mod_rewrite.html