Olá, espero com este post auxiliar iniciantes em Code Igniter a remover o index.php da url de seus sites, com os passos que segui para resolver na minha máquina.
Primeiro segui os passos do blog TIDoc, criação do .htaccess e ajustes no config.php do CI. Quase deu certo, sigam eles também:
1. Habilitar o ModRewrite no Apache
Abra o httpd.conf e descomente a linha LoadModule rewrite_module modules/mod_rewrite.so e reinicie o apache.
No meu caso, Ubuntu 13.04, fiz isso através dos seguintes comandos, inspirado pelo posto do Tiago Passos:
2. htaccess
Crie um .htaccess na raiz do seu projeto. O arquivo deve estar no mesmo nível da pasta system.
Muita atenção com as barras (/). A maioria das dicas e tutoriais que você vai encontrar por ai leva em conta que seu projeto está no document root e não em um alias (diretório virtual). Se você estiver usando um diretório virtual use o RewriteBase para indicar qual a url base de seu projeto e em RewriteRule remova a barra da frente de index.php para indicar que o arquivo não está na raiz do servidor (document root) e sim no diretório virtual.
3. config.php
É necessário alterar uma linha do config.php na pasta application.
Altere a linha $config['index_page'] = "index.php" para $config['index_page'] = "".
Bom, teoricamente você terminou aqui. No meu caso aconteceram dois problemas, primeiro que nas configurações do meu diretório virtual não estava permitindo executar as regras, então executei o seguinte comendo para abrir o arquivo de configurações:
E alterei as configurações para permitir as regras do .htaccess, trocando AllowOverride "none" por "All":
<Directory /home/bolivar/sites/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
No final das contas, após reiniciar o Apache, quebrou todos os links para CSS, JS imagens etc, consegui resolver adicionando a seguinte linha no .htaccess
RewriteRule ^assets/ - [L,NC]
Então meu arquivo .htaccess final ficou assim:
Com isso, consegui resolver na minha máquina local, agora ainda preciso ver se vai funcionar no servidor do cliente...
Documentação sobre .htaccess, RewriteRules e outras inspirações:
1 - http://httpd.apache.org/docs/2.2/howto/htaccess.html
2 - http://httpd.apache.org/docs/current/mod/mod_rewrite.html
3 - http://httpd.apache.org/docs/current/rewrite/intro.html
4 - http://tidoc.wordpress.com/2009/08/12/codeigniter-remover-index-php-da-url/
5 - http://blog.tiagopassos.com/2011/04/21/configurando-o-mod_rewrite-do-apache2-no-ubuntu-linux/
E recomendo também as video aulas em:
1 - http://net.tutsplus.com/sessions/codeigniter-from-scratch/
Nenhum comentário:
Postar um comentário