Artigos de CodeIgniter.



Eliminando “index.php” do CodeIgniter no Xampp 2.5

O objetivo deste tutorial √© tentar ajudar o pessoal que est√° com dificuldades em configurar o CodeIgniter removendo a string “index.php” da URL.
No intuito de tornar as URLs dos meus projetos mais amigáveis li e reli vários tutoriais sem encontrar algum que realmente resolvesse o meu problema até que um amigo, André Neves, me emprestasse o livro do CodeIgniter do Ademir Cristiano Gabardo que foi bastante esclarecedor.

Estarei trabalhado com a vers√£o 2.0.2 do CodeIgniter (CI) e com a vers√£o 2.5 do Xampp.

Se voc√™ acabou de instalar o CI voc√™ deve remover o “default_controller” que √© a classe padr√£o de carregamento de seu site para que o framework n√£o carregue nenhuma classe padr√£o. Isto deve ser feito no arquivo: application\config\routes.php. Ache a linha do “default_controler” e apague a palavra “welcome”, como no exemplo abaixo.

// Antes
$route['default_controller'] = "welcome";
//Depois
$route['default_controller'] = "";

Agora ao recarregar a sua p√°gina pelo navegador, o CI encontrar√° um erro pois n√£o achou o controller padr√£o e apresentar√° a pagina de erro padr√£o. Para voltar a acessar a classe welcome, voc√™ devera digitar agora na url o sufixo: “/index.php/welcome” (no meu exemplo a URL completa seria: “http://localhost/CodeIgniter_2.0.2/index.php/welcome”).

O pr√≥ximo passo √© copiar o arquivo “.htaccess” (baixe o ZIP) para a pasta raiz de seu projeto (veja a imagem mais abaixo). Ou ainda, abra o Notepad, copie e cole as linhas abaixo e salve como “.htaccess” (sem aspas) na raiz de seu projeto. √Č importante que n√£o coloque espa√ßos extras e nem quebras de linhas. Al√©m disso, atente para salvar o arquivo com o nome “.htaccess” (sem aspas). N√£o esque√ßa do ponto antes do nome e cuidado para n√£o salvar com uma extens√£o qualquer.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Clique para ampliar

Essas linhas s√£o instru√ß√Ķes que informam ao apache que caso o m√©todo de reescrita esteja desabilitado, que o habilite (linha 1). Informa tamb√©m, as regras de aplica√ß√£o de reescrita nas linhas 2 e 3 e finalmente na quarta linha, o que ele deve procurar para reescrever.

Volte ao navegador e recarregue a p√°gina agora retirando a string “index.php” (Ex: “http://localhost/CodeIgniter_2.0.2/welcome”)¬† , isso deve ser o suficiente para que ela n√£o apare√ßa mais. De qualquer forma √© de boa pr√°tica configurar o framework para que n√£o espere receber esta string na URL. V√° ent√£o em application/config/config.php e remova a configura√ß√£o padr√£o de “index_page” como abaixo.

// Antes
$config['index_page'] = 'index.php';
// Depois
$config['index_page'] = '';

Fonte: Gabardo, Ademir Cristiano. CodeIgniter Framework PHP, Novatec – SP – 2010.

Assine o RSS de meus Artigos e Comentários.