Pesquisa de site

Como habilitar o mod_rewrite no Apache2 no Debian ou Ubuntu


Se você instalou o servidor Apache HTTP via apt-get ou aptitude em sistemas Ubuntu ou Debian, ele tem o módulo mod_rewrite instalado, mas não ativado por padrão. Após a instalação do servidor web Apache, você precisa ativar mod_rewrite explicitamente para aproveitar seus benefícios.

O que é mod_rewrite?

O servidor da web Apache HTTP possui recursos extensíveis que são realizados pela noção de módulos conectáveis. Ao construir o servidor web Apache, você compila um conjunto de módulos que considera necessários e os incorpora ao servidor web. Um desses módulos é chamado mod_rewrite, que é responsável por reescrever dinamicamente URLs de sites no lado do servidor. Por exemplo, quando o usuário solicita http://myserver.com/my_category/my_post.html, a URL solicitada pode ser traduzida por mod_rewrite para http:/ /myserver.com/post.php?category=100&post=200, que é então manipulado pelo mecanismo de back-end do servidor web.

Por que usar mod_rewrite?

Webmasters geralmente usam mod_rewrite para melhorar a facilidade de uso e facilidade de busca de sites da web, expondo URLs mais memoráveis e rastreáveis para o mundo. Além disso, pode ajudar a ocultar informações confidenciais, como strings de consulta de solicitações de URL e, portanto, aumentar a segurança do site.

Como habilitar mod_write no Apache2

A instalação padrão do Apache2 vem com mod_rewrite instalado. Para verificar se este é o caso, verifique a existência de /etc/apache2/mods-available/rewrite.load.


$ cat /etc/apache2/mods-available/rewrite.load

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

Para habilitar e carregar mod_rewrite no servidor web Apache2, execute o restante das etapas.


$ sudo a2enmod rewrite

O comando acima criará um link simbólico em /etc/apache2/mods-enabled.


$ ls -al /etc/apache2/mods-enabled/rewrite.load

lrwxrwxrwx 1 root root 30 Dec  9 23:10   /etc/apache2/mods-enabled/rewrite.load -> ../mods-available/rewrite.load

Em seguida, abra o arquivo a seguir e substitua todas as ocorrências de AllowOverride None por AllowOverride all.


$ sudo vi /etc/apache2/sites-available/default

Por fim, reinicie o Apache2.

No Ubuntu 14.10 ou Debian 7 ou anterior:


$ sudo service apache2 restart

No Ubuntu 15.04 ou Debian 8 ou posterior:


$ sudo systemctl start apache2

Artigos relacionados: