Apache Config · 2 min read · Nov 26, 2025
Apache2: Como Redirecionar Usuários para o Site Móvel ou Normal com Base no Dispositivo Usando mod_rewrite

Desde o enorme aumento de smartphones e tablets como o iPhone, iPad, telefones e tablets Android, BlackBerries, etc., você pode ter considerado criar uma versão móvel do seu site. Este tutorial explica como configurar o Apache para servir a versão móvel do seu site se o visitante usar um dispositivo móvel e a versão regular se o visitante usar um PC desktop padrão. Isso pode ser alcançado com o módulo de reescrita do Apache.
1 Nota Preliminar
Neste tutorial, meu site “normal” está acessível em http://www.example.com e http://example.com, enquanto meu site móvel é chamado http://m.example.com. Esses vhosts já existem no meu sistema, então não vou cobrir como configurá-los.
2 Habilitando mod_rewrite
Primeiro, você deve garantir que o módulo do Apache mod_rewrite esteja habilitado. Este módulo permite que você faça um redirecionamento httpd, redirecionamento apache e reescrita de URL apache via um servidor web apache. No Debian/Ubuntu, você pode habilitá-lo assim:
a2enmod rewriteReinicie o Apache depois - para Debian/Ubuntu, o comando é:
/etc/init.d/apache2 restart3 Configurando o Apache para Permitir Regras de Reescrita em Arquivos .htaccess
Meu site “normal” www.example.com / example.com tem o arquivo de configuração do vhost /etc/apache2/sites-available/www.example.com.vhost e o diretório raiz /var/www/www.example.com/web.
Meu site móvel m.example.com tem o arquivo de configuração do vhost /etc/apache2/sites-available/m.example.com.vhost e o diretório raiz /var/www/www.example.com/mobile.
Quero colocar as regras de reescrita para cada site em um arquivo .htaccess (embora também seja possível colocá-las diretamente no arquivo de configuração do vhost) que será lido pelo servidor http apache. Portanto, primeiro devo modificar nossas configurações de vhost para que ambos os arquivos .htaccess possam conter diretivas de reescrita. Podemos fazer isso com a linha AllowOverride All (que permite que .htaccess substitua todas as configurações na configuração do vhost, a configuração do servidor):
vi /etc/apache2/sites-available/www.example.com.vhost[...]
AllowOverride All
[...]vi /etc/apache2/sites-available/m.example.com.vhost[...]
AllowOverride All
[...]Reinicie o Apache depois:
/etc/init.d/apache2 restart4 Criando Regras de Reescrita
Agora vamos criar as regras de reescrita para o site “normal” www.example.com / example.com que redirecionará todos os usuários de dispositivos móveis para a versão móvel m.example.com - eu me concentro nos dispositivos/agentes de usuário relevantes aqui, que são Android, Blackberry, Googlebot-mobile (o bot de busca móvel do Google), IE Mobile, iPad, iPhone, iPod, Opera Mobile, PalmOS e WebOS.
O arquivo /var/www/www.example.com/web/.htaccess fica assim:
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]
Para nosso site móvel m.example.com, as regras de reescrita que redirecionam todos os usuários que não usam um dispositivo móvel para nosso site “normal” www.example.com / example.com ficam assim - eu neguei a condição RewriteCond do arquivo .htaccess anterior:
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]
É isso, configuramos nossa diretiva de redirecionamento! Agora você pode fazer alguns testes, por exemplo, visite m.example.com com um navegador desktop padrão:
Se tudo correr bem, você deve ser redirecionado para www.example.com:

Agora teste com um dispositivo móvel (eu uso um telefone Android aqui) e vá para www.example.com:

Você deve ser redirecionado para m.example.com:

5 Links
- Apache: http://httpd.apache.org/
- Módulo Apache mod_rewrite: http://httpd.apache.org/docs/current/mod/mod_rewrite.html
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.