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]
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.
Acho que eu mesmo descobri qual o problema. Não é para qualquer site, não é mesmo? Tem que ter esse tal de CI CodeIgniter que eu nem sei do que se trata. E Xampp 2.5. No meu servidor deve ser tudo diferente. Não consegui achar nenhum posto que explique como eliminar index.php GERAL, de qualquer site existente na terra.
Olá Harry e obrigado pelo seu contato. É exatamente isso, o tutorial é para quem usa o Framework PHP CodeIgniter que “escreve” esse valor na URL do navegador seguido de outros parâmetros, o que não é recomendável na nova web 2.0 que preza por URLs amigáveis. Mas pelo que entendi, você não quer que apareça em suas URLs o sufixo index.php, certo?! Basta colocar os seus links sem essa extensão que deverá fucncionar. Ex: em http://www.rcoli.com.br/index.php, basta colocar somente http://www.rcoli.com.br/ que irá funcionar. É uma configuração padrão do servidor Apache, o mais usado na internet. Atente que essa regra vale também para páginas em html como index.html. Espero ter ajudado. Abç.
Rogério, não consigo entender direito esse negócio.Simplesmente comigo não funciona. Alterei o .htaccess no meu diretório raiz mas aparece página de erro, meu site não aparece mais. O que mais devo fazer alem de alterar o .htaccess???
Dá para explicar na liguagem “leiguess”??????
Até que enfim! consegui, já estava ficando louco com essa url feia!
muito obrigado rogerio
li 10 artigos antes desde seu, e nenhum deu certo, mas baixei o seu htaccess desconpactei no diretorio correto e deu certo!
Obrigado pelo comentário. Conto com sua colaboração na divulgação do site. Abraço.