ウェブサイト検索

Apache 2 は、使用されているデバイスに基づいてリダイレクトおよびリライトします


このページでは

  1. 1 予備メモ
  2. 2 mod_rewrite の有効化
  3. 3 .htaccess ファイルで書き換えルールを許可するように Apache を構成する
  4. 4 書き換えルールの作成
  5. 5 リンク

iPhone、iPad、Android フォンとタブレット、BlackBerry などのスマートフォンとタブレットの普及により、Web サイトのモバイル バージョンの作成を検討したことがあるかもしれません。このチュートリアルでは、訪問者がモバイル デバイスを使用している場合は Web サイトのモバイル バージョンを提供し、訪問者が標準のデスクトップ PC を使用している場合は通常のバージョンを提供するように Apache を構成する方法について説明します。これは、Apache の書き換えモジュールで実現できます。

1 予備メモ

このチュートリアルでは、私の「通常の」Web サイトは http://www.example.com と http://example.com でアクセスできますが、モバイル サイトは http://m.example.com と呼ばれます。これらの vhost は既にシステムに存在するため、セットアップ方法については説明しません。

2 mod_rewrite を有効にする

まず、Apache モジュール mod_rewrite が有効になっていることを確認する必要があります。このモジュールを使用すると、Apache Web サーバー経由で httpd リダイレクト、Apache リダイレクト、および Apache 書き換え URL を実行できます。 Debian/Ubuntu では、次のように有効にできます。

a2enmod rewrite

その後、Apache を再起動します。Debian/Ubuntu の場合、コマンドは次のとおりです。

/etc/init.d/apache2 restart

3 .htaccess ファイルで書き換えルールを許可するように Apache を構成する

私の \normal\ Web サイト www.example.com/example.com には、vhost 構成ファイル /etc/apache2/sites-available/www.example.com.vhost とドキュメント ルート /var/www/www.example があります。 .com/ウェブ。

私のモバイル サイト m.example.com には、vhost 構成ファイル /etc/apache2/sites-available/m.example.com.vhost とドキュメント ルート /var/www/www.example.com/mobile があります。

get read by apache http server を使用して、各サイトの書き換えルールを .htaccess ファイルに配置します (vhost 構成ファイルに直接配置することもできます)。したがって、両方の .htaccess ファイルに書き換えディレクティブを含めることができるように、最初に vhost 構成を変更する必要があります。これは、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 にリダイレクトする \通常の\ Web サイト 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>

モバイル Web サイト m.example.com の場合、モバイル デバイスを使用しないすべてのユーザーを「通常の」Web サイト www.example.com/example.com にリダイレクトする書き換えルールは次のようになります。前の .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 リンク

  • Apache: http://httpd.apache.org/
  • Apache モジュール mod_rewrite: http://httpd.apache.org/docs/current/mod/mod_rewrite.html