Мобильный редирект с mod_rewrite

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

DebianВ этом учебнике показано, как сделать мобильную версию сайта перенаправив пользователей на с мобильных устройств на мобильную версию сайта с использованием mod_rewrite. (на серверах под управлением Apache). В связи со значительным увеличение смартфонов и планшетников, таких как iPhone, iPad, Android телефонов и т.д., Вы возможно рассматриваете возможность создания мобильной версии вашего сайта. Это руководство объясняет, как настроить Apache, запуская мобильную версию вашего сайта если посетитель использует мобильные устройства, и обычную версию при использовании посетителем нормальные настольных ПК. Это может быть достигнуто с изменением модуля Apache.

Предварительные замечания

В этом уроке, мой "нормальный" Web сайт доступен по адресу http://www.example.com и http://example.com , а мой мобильный сайт по адресу http://m.example.com . Эти виртуальные доменов уже существуют в моей системе, так что я не рассказываю, как установить их. Для более подробной информации обращаться на форум.

Включение mod_rewrite

Сначала Вы должны убедиться, что модуль Apache mod_rewrite включен. В Debian / Ubuntu, можно активировать его следующим образом:

  • a2enmod rewrite

Потом перезапустите Apache - для Debian / Ubuntu, команда:

  • /etc/init.d/apache2 restart

Настройка Apache для разрешения перезаписи правил в файле .htaccess

Мой "нормальных" веб-сайт 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 (хотя это также можно разместить переписать правила непосредственно в виртуальный хост файл конфигурации). Поэтому сначала я должен изменить наши конфигурации виртуальных хостов так, чтобы обе директивы могли содержать .htaccess файлы. Мы можем сделать это со строкой AllowOverride All (что позволяет .htaccess переопределить все настройки конфигурации виртуальных хостов)::

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

Впоследствии перезапустите Apache:

  • /etc/init.d/apache2 restart

Создание правил перезаписи

Теперь давайте создадим правила перезаписи для "нормального" веб-сайта www.example.com/example.com, который будет перенаправлять всех пользователей мобильных устройств для мобильной версии m.example.com - я сосредотачиваюсь на соответствующие устройства Android, Blackberry, googlebot-mobile (Google's mobile search bot), IE Mobile, iPad, iPhone, iPod, Opera Mobile, PalmOS, and WebOS.

/var/www/www.example.com/web/.htaccess файл выглядит следующим образом:

  • nano /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 файлов:

  • nano /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 с нормального браузера desktop системы.


Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk

Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.