Habilitando e configurando a utilização do módulo mod_rewrite
Uma coisa que sempre faço, mas sempre esqueço como fazer é habilitar o mod_rewrite do Apache.
Para quem não conhece, esse é um módulo do Apache que utiliza um mecanismo baseado em regras de reescrita (baseadas em um par de expressões regulares), esse recurso é muito utilizado pelo WordPress na função do link permanente.
Basicamente o módulo permite a reescrita de URL’s.
Para habilitar o módulo no Apache não há dificuldades, já que este modulo vem instalado com o Apache, pelo menos na distribuição Debian.
Três passos serão necessários para que o modulo entre em vigor.
- Habilitar o modulo no Apache:
sudo a2enmod rewrite
- Editar o arquivo Virtualhost, eu prefiro realizar esse procedimento em cada site e não aplica-lo no arquivo virtualhost default:
sudo gedit /etc/apache2/sites-available/default
Procure no seu arquivo a entrada “AllowOverride None”, no meu caso estava na linha 11.
Altere esse valor para “AllowOverride All” .
1 <VirtualHost *:80> 2 # The ServerName directive sets the request scheme, hostname and port that 3 # the server uses to identify itself. This is used when creating 4 # redirection URLs. In the context of virtual hosts, the ServerName 5 # specifies what hostname must appear in the request's Host: header to 6 # match this virtual host. For the default virtual host (this file) this 7 # value is not decisive as it is used as a last resort host regardless. 8 # However, you must set it for any further virtual host explicitly. 9 #ServerName www.example.com 10 11 ServerAdmin postmaster@seudomino 12 DocumentRoot /var/www/seusite/ 13 ServerName seudominio 14 ServerAlias site.seudominio 15 16 #Evitando que a arvore de diretorio seja exibida 17 <Directory /var/www/ site/> 18 Options Indexes FollowSymLinks MultiViews 19 AllowOverride All 20 Order allow,deny 21 allow from all 22</Directory>
- E reiniciar o Apache.
sudo /etc/init.d/apache2 restart
Basicamente é isso, agora já é possível reescrever URL’s.
Até.
Post desatualizado e não funcional. Corrija por favor.
Oi Paulo, legal vê-lo por aqui!
Por favor, você pode informar qual a mensagem de erro que foi exibido a você?
Acabei de testar aqui o mesmo comando para habilitar o modulo de reescrita do apache e ocorreu sem erros.
root@intranet:~# a2enmod rewrite
obs: caso você tenha usado o comando com sudo, na distribuição Debian esse recurso não vem instalado por padrão, sendo necessário a instalação do pacote antes de usar.
A alternativa é logar como root e executar o comando.
Até e Paz!