Como remover o index.php no CodeIgniter

É muito comum que após a instalação do CodeIgniter o programador queira remover o index.php, pois a URL não fica muito agradável de se ver e também para os motores de busca. Veja neste nosso post de hoje como remover o index.php no CodeIgniter.

Como remover o index.php no CodeIgniter

O primeiro passo é criar um arquivo na raiz do seu site chamado .htaccess.

Dentro deste arquivo você vai colocar o seguinte código:

RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

O que este código faz é basicamente redirecionar para a raiz (/) todas as requisições que neste caso não tenham as palavras: images e robots.

Porém, uma dica muito importante: esta regra acima só vale se o seu codeigniter estiver instalado na raiz do seu site.

Caso você o tenha instalado dentro de algum diretório, você deve mencionar este diretório no código.

Vamos supor que você tenha instalado o codeigniter dentro da pasta loja. Então, o código dentro do .htaccess deverá ficar assim:

RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txt)
RewriteRule ^(.*)$ /loja/index.php/$1 [L]

O que estou dizendo é que tudo que for diferente de images e robots seja redirecionado para o endereço /loja/. 

Esta é uma dica bem valiosa que às vezes esquecemos de colocar e nos dá uma dor de cabeça bem grande, principalmente para quem está começando.

O post de hoje foi curto, mas muito útil espero.

Até o próximo post.

 

Fábio S. Reszko

Sou Programador PHP desde 2006 e eu acredito sinceramente que programar usando um Framework PHP é a solução para os problemas de códigos desorganizados, difíceis de entender e de dar manutenção no futuro. Se você também acredita nisto, então fique à vontade em explorar meu blog.