Ativando o Recurso URLs Limpas no seu Localhost no Ubuntu
Salve amigos.
Hoje eu vou dar uma dica muito legal. Faz muito tempo que eu tentava, sem sucesso, utilizar o recurso URLs Limpas (clean urls) no meu localhost, mas eu nunca consegui. Até hoje.
Parte da culpa por nunca der dado certo era minha, e como eu já compartilhei em outro artigo a forma que eu utilizo para rodar minhas páginas localmente (criando um alias para uma pasta dentro da minha pasta pessoal), me senti na obrigação de compartilhar esta informação para "consertar" o que posso ter criado.
As urls limpas são um recurso desnecessário quando se está trabalhando localmente, mas é interessante ter esta possibilidade para pode ser realizar testes com uma agilidade maior.
Primeira Etapa: Ativando o mod_rewrite no Apache 2
É claro que eu estou considerando que você tem o Apache instalado e configurado no seu computador. Caso você não tenha, você pode seguir este tutorial.
O mod_rewrite é um módulo do Apache que permite que as urls possam ser re-escritas, através de uma regra escrita no arquivo .htaccess do site. Através do mod_rewrite eu posso, por exemplo, re-escrever as urls para que as extensões .html e .php para que não apareçam, ou mesmo posso re-escrever a url para que a extensão .php seja exibida como .asp. Mas ela é comumente utilizada para tornar as urls mais amigáveis e fáceis de se decorar (além de ajudar na indexação do site em mecanismos de busca).
O mod_rewrite já vem junto com o Apache, a única coisa que é necessário fazer é ativa-lo. Ele está armazenado na pasta /etc/apache2/mods-available/, para ativa-lo, bastar criar um link para o módulo dentro da pasta mods-enabled. Abra o terminal e digite:
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
Agora, o próximo passo é dizer ao Apache que as diretrizes do .htaccess devem ser priorizadas sobre as diretrizes padrão. No terminal, digite:
sudo gedit /etc/apache2/sites-available/default
Agora procure por algo assim:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>
Altere o valor de AllowOverride para All.
Agora será necessário reiniciar o Apache:
sudo /etc/init.d/apache2 reload
Ou, se você seguiu o meu tutorial, pode utilizar o comando:
sudo service apache2 restart
Pronto, em teoria, já está pronto, mas se você seguiu uma das minhas dicas neste tutorial, a de mapear a pasta do Apache para uma pasta dentro da sua pasta pessoal, o recurso de url limpas não irá funcionar.
Segunda Etapa: Solucionando o problema
Primeiro, vou dizer qual o motivo de mapear o Apache para fora do diretório padrão (que é /var/www). Você evita de espalhar arquivos pessoais por todo o sistemas, concentrando-os apenas na sua pasta pessoal. Assim você não corre o risco de, num eventual backup para formatação, você fazer cópia apenas da sua pasta home, e esquecer os arquivos na pasta www.
Só que, até onde consegui fazer, o recurso de URLs Limpas só funciona nos sites salvos dentro da pasta padrão.
Existe uma forma muito simples de resolver o problema e ainda usufruir das vantagens de manter seus arquivos dentro da sua home.
O primeiro passo é dar permissões de escrita para a pasta /var/www, com um simples comando de terminal:
sudo chmod 777 /var/www
Você também pode executar o Nautilus como root e mudar as permissões em modo gráfico, mas no terminal é bem mais rápido.
E para finalizar, crie um atalho para a pasta do site que você quer utilizar url limpas dentro da pasta /var/www. Este atalho pode ser feito facilmente abrindo dois Nautilus, um apontando para a pasta /var/www e outro aberto na pasta que contém a pasta do site.
Clique sobre a pasta do site e a arraste para a janela do Nautilus aberta em /var/www, utilizando o botão do meio do mouse (geralmente é o rollover). Ao soltar o botão, vai aparecer um menu de contexto. Você escolherá a opção Criar Link Aqui.
Pronto. Agora você já pode utilizar URL Limpas no seu localhost, e ainda vai poder manter seus arquivos seguros na sua pasta home. É só lembrar que sempre que você quiser utilizar o recurso localmente, você deve fazer um atalho para a pasta dentro da pasta /var/www.

Até a próxima.