Code Igniter URLs
Por default, URLs no Code Igniter são projetadas para serem amigáveis aos motores de busca e ao ser humano. No lugar de usar a abordagem padrão "query string" que é sinônim de sistemas dinâmicos, Code Igniter usa a abordagem baseada em segmentos:
www.seu-site.com/noticias/artigos/meu_artigo
Note: Query string URLs podem ser opcionalmente habilitadas, como descrito abaixo.
Segmentos URI
Os segmentos na URL, de acordo com a abordagem Model-View-Controller, geralmente representam:
www.seu-site.com/classe/funcao/ID
- O primeiro segmento representa a classe controller que será invocada.
- O segundo segmento representa a classe função, ou método, que será chamada.
- O terceiro, e qualquer outro subseqüente, representa o ID ou qualquer outra variável que serão passados com controller.
A Classe URI e o Assistente URL contêm funções que facilitarão o trabalho com seus dados URI. Além disto, suas URLs podem ser remapeadas usando a característica URI Routing, proporcionando mais flexibilidade.
Removendo o arquivo index.php
Por default, o arquivo index.php será incluso em suas URLs:
www.seu-site.com/index.php/noticias/artigos/meu_artigo
Você pode remover facilmente este arquivo usando um arquivo .htaccess com algumas regras simples. Aqui está um exemplo de tal arquivo, usando o método "negativo" no qual tudo é redirecionado exceto os itens especificados:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
No exemplo acima, qualquer requisição HTTP, outra que aquela pelo index.php, imagens e robots.txt será tratada como uma requisição pelo arquivo index.php.
Adicionando um sufixo URL
No seu arquivo config/config.php você pode espeficicar um sufixo que será adicionado a todas as URLs geradas pelo Code Igniter.
Por exemplo, se uma URL é assim:
www.seu-site.com/index.php/produtos/view/sapatos
Você pode opcionalmente adicionar um sufixo como .html, fazendo a página aparecer como de um certo tipo:
www.seu-site.com/index.php/produtos/view/sapatos.html
Habilitando Query Strings
Em alguns casos, você pode preferir usar URLs query strings:
index.php?c=produtos&m=view&id=345
O Code Igniter opcionalmente suporta esta capacidade, que pode ser habilitada no arquivo application/config.php. Se você abrir seu arquivo de configuração verá estes itens:
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
Se você alterar "enable_query_strings" para TRUE, este recurso será ativado. Seus controles e funções serão então acessados usando palavras "gatilho" que você configurará para invocar seus controllers e métodos:
index.php?c=controller&m=metodo
Por favor, note: Se você está usando query strings, terá que construir suas próprias URLs, ao invés de utilizar os assistentes URL (e outros assistentes que geral URLs, como alguns dos assistentes de formulário) já que eles foram projetados para trabalhar com URLs segmentadas.