<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CodeIgniter Brasil &#187; Configurações</title>
	<atom:link href="http://codeigniterbrasil.com/categoria/configuracoes/feed/" rel="self" type="application/rss+xml" />
	<link>http://codeigniterbrasil.com</link>
	<description>tutoriais, dicas, macetes, códigos e informações sobre o melhor framework PHP: CodeIgniter</description>
	<lastBuildDate>Mon, 30 Jan 2012 11:20:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>$_GET no CodeIgniter</title>
		<link>http://codeigniterbrasil.com/configuracoes/_get-no-codeigniter/</link>
		<comments>http://codeigniterbrasil.com/configuracoes/_get-no-codeigniter/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 12:00:04 +0000</pubDate>
		<dc:creator>Tárcio Zemel</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[controller]]></category>

		<guid isPermaLink="false">http://codeigniterbrasil.com/?p=93</guid>
		<description><![CDATA[Por padrão, o CodeIgniter não suporta parâmetros $_GET; quando algo assim é identificado no URL, é automaticamente destruído pelo CI. Entretanto, pode haver situações em que é preciso pegar/passar variáveis com GET, seja por usar algum webservice, serviço de pagamento ou o que quer que seja. Como o CodeIgniter é o melhor framework PHP, com [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-61 ilustra-artigo" src="http://codeigniterbrasil.com/wp-content/uploads/2010/01/url-uri-codeigniter.jpg" alt="" width="350" height="200"></p>
<p>Por padrão, o <strong>CodeIgniter</strong> não suporta parâmetros $_GET; quando algo assim é identificado no URL, é automaticamente destruído pelo CI. Entretanto, pode haver situações em que é preciso pegar/passar variáveis com GET, seja por usar algum webservice, serviço de pagamento ou o que quer que seja.</p>
<p>Como o <strong>CodeIgniter é o melhor framework PHP</strong>, com ele também é possível liberar o acesso a parâmetros $_GET com muita facilidade. E mais: somente em <a href="http://codeigniterbrasil.com/passos-iniciais/controllers-no-codeigniter/">controllers</a> específicos!</p>
<div class="alert">
Este artigo é altamente inspirado no post &#8220;<a href="http://www.dannyherran.com/2010/12/_get-parameters-on-codeigniter/">$_GET parameters on CodeIgniter</a>&#8220;, do <a href="http://www.dannyherran.com/">blog de Danny Herran</a>.
</div>
<h2>Configurar o CodeIgniter para aceitar $_GET</h2>
<p>A primeira coisa que deve ser feita é uma pequena alteração no arquivo <strong>/application/config/config.php</strong>. Localize a linha com a configuração &#8220;<strong>uri_protocol</strong>&#8221; e altere seu valor para &#8220;<strong>PATH_INFO</strong>&#8220;:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p93code5'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p935"><td class="code" id="p93code5"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'uri_protocol'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span>  <span style="color: #0000ff;">'PATH_INFO'</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Então, para cada método que seja preciso mexer com parâmetros GET, adicione o seguinte:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p93code6'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p936"><td class="code" id="p93code6"><pre class="php" style="font-family:monospace;"><a href="http://www.php.net/parse_str"><span style="color: #990000;">parse_str</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'QUERY_STRING'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>A <a href="http://php.net/manual/en/function.parse-str.php">função parse_str do PHP</a> simplesmente converte os parâmetros do URL em variáveis. Por exemplo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p93code7'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p937"><td class="code" id="p93code7"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$str</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;framework=codeigniter&amp;features[]=best+framework&amp;features[]=rocks&quot;</span><span style="color: #339933;">;</span>
<a href="http://www.php.net/parse_str"><span style="color: #990000;">parse_str</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$str</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$framework</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// &quot;codeigniter&quot;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$features</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// &quot;best framework&quot;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$features</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// &quot;rocks&quot;</span></pre></td></tr></table></div>

<p>Obviamente a variável &#8220;str&#8221; do exemplo vai receber a URL-alvo (uma ajudinha sobre <a href="http://www.google.com.br/search?q=php+get+url">como pegar a URL atual</a>) e, a partir daí, é possível trabalhar com variáveis comuns pra usar os parâmetros passados através de $_GET no CodeIgniter. Um exemplo de URL seria:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p93code8'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p938"><td class="code" id="p93code8"><pre class="php" style="font-family:monospace;">http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//codeigniterbrasil.com/controller/metodo/?s=conteudo&amp;c=codeigniter</span></pre></td></tr></table></div>

<p>Bem facinho, certo? Se alguém tiver alguma outra solução/dica sobre <strong>como usar GET no CodeIgniter</strong> e/ou pegar o URL atual, basta comentar!</p>
]]></content:encoded>
			<wfw:commentRss>http://codeigniterbrasil.com/configuracoes/_get-no-codeigniter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Configuração de rotas (routes) no CodeIgniter</title>
		<link>http://codeigniterbrasil.com/configuracoes/configuracao-rotas-routes-codeigniter/</link>
		<comments>http://codeigniterbrasil.com/configuracoes/configuracao-rotas-routes-codeigniter/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 18:38:03 +0000</pubDate>
		<dc:creator>Tárcio Zemel</dc:creator>
				<category><![CDATA[Configurações]]></category>
		<category><![CDATA[Passos Iniciais]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://codeigniterbrasil.com/?p=78</guid>
		<description><![CDATA[O relacionamento padrão entre uma URL e um Controller no CodeIgniter segue a estrutura exemplo.com/classe/metodo/id/ (como mostrado no artigo sobre Controllers no CodeIgniter), mas, às vezes, é preciso &#8220;remapear&#8221; este relacionamento. No CodeIgniter, isso é feito através de routes (rotas). Este é um guest post de Julio Bitencourt, que pode ser encontrado na internet através [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://codeigniterbrasil.com/wp-content/uploads/2010/07/rotas-routes-codeigniter-configuracao.gif" alt="Rotas (routes) no CodeIgniter: configuração" title="" width="400" height="200" class="aligncenter size-full wp-image-83 ilustra-artigo" /></p>
<p>O relacionamento padrão entre uma URL e um Controller no CodeIgniter segue a estrutura exemplo.com/classe/metodo/id/ (como mostrado no artigo sobre <a href="/passos-iniciais/controllers-no-codeigniter/">Controllers no CodeIgniter</a>), mas, às vezes, é preciso &#8220;remapear&#8221; este relacionamento. No CodeIgniter, isso é feito através de <strong>routes</strong> (rotas).</p>
<div class="guest-post">
Este é um guest post de <strong>Julio Bitencourt</strong>, que pode ser encontrado na internet através de:</p>
<ul>
<li><a href="http://www.juliobitencourt.com/">Blog de Julio Bitencourt</a></li>
<li><a href="http://www.twitter.com/juliobitencourt">twitter de Julio Bitencourt</a></li>
</ul>
</div>
<p>Tomemos como exemplo a visualização de produtos em uma loja virtual. Digamos que a página para visualização dos detalhes de uma cadeira de balanço seja acessada através da URL <strong>minhaloja.com/produtos/detalhes/1/2</strong> onde &#8220;produtos&#8221; é nosso controller; &#8220;detalhes&#8221; é a função que exibe os detalhes do produto; &#8220;1&#8243; seja o código da categoria cadeiras; e &#8220;2&#8243; seja o código de nossa cadeira de balanço. Esta estrutura funciona perfeitamente, mas, convenhamos, não é &#8220;elegante&#8221;.</p>
<h2>Configuração de rotas</h2>
<p>A configuração de rotas é feita através do arquivo <strong>/application/config/routes.php</strong>, na instalação padrão  do CodeIgniter. Alguns exemplos de configuração de routes:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p78code16'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7816"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p78code16"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// &quot;minhaloja.com/fale-conosco&quot; vai direcionar para o controller &quot;contato&quot;</span>
<span style="color: #000088;">$route</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'fale-conosco'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;contato&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// &quot;minhaloja.com/fale-conosco&quot; vai direcionar para o controller &quot;cadastros&quot;</span>
<span style="color: #666666; font-style: italic;">// utilizando a função &quot;novo_cliente&quot;</span>
<span style="color: #000088;">$route</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cadastro/clientes'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;cadastros/novo_cliente&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<div class="alert">
Rotas são executados na ordem em que são definidas. Rotas &#8220;superiores&#8221; sempre prevalecem sobre rotas &#8220;inferiores&#8221;.
</div>
<h2>Wildcards ou Curingas</h2>
<p>Você pode usar curingas (<em>wildcards</em>) para configurar rotas. Desta forma, é possível deixar as URLs mais dinâmicas. Existem 2 tipos de wildcards:</p>
<ol>
<li><strong>:num.</strong> O wildcard &#8220;:num&#8221;, utilizado para rotear somente números.</li>
<li><strong>:any.</strong> O curinga &#8220;:any&#8221;, utilizado para rotear qualquer caractere.</li>
</ol>
<p>Voltando ao exemplo anterior, que tal transformar a URL &#8220;minhaloja.com/produtos/detalhes/1/2&#8243; em &#8220;minhaloja.com/1/2/&#8221;? Seguindo a estrutura padrão do CodeIgniter, pressupõe-se que se está chamando o controller &#8220;1&#8243; e, dentro do controller, a função &#8220;2&#8243;, o que não existe na prática.</p>
<p>Para resolver o problema, vamos escrever a seguinte rota:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p78code17'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7817"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p78code17"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$route</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">':num/:num'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;produtos/detalhes&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Dessa forma, haverá direcionamento para &#8220;produtos/detalhes&#8221; sempre que os seguimentos 1 e 2 da URL sejam numéricos.</p>
<p>Exemplo da função detalhes dentro do controller &#8220;produtos&#8221;:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p78code18'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7818"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code" id="p78code18"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Produtos <span style="color: #000000; font-weight: bold;">extends</span> CI_Controller
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        parent<span style="color: #339933;">::</span>__construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> index<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// Função index é acessada quando não for passada nenhuma função para o controller</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> detalhes<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">uri</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">segment</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// retorna o código da categoria</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">uri</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">segment</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// retorna o código do produto</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h2>Rotas com expressões regulares</h2>
<p>É possível utilizar expressões regulares para definir as rotas no CodeIgniter. Vamos reescrever a rota do nosso exemplo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p78code19'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7819"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p78code19"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$route</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'(:num)/(:num)'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;produtos/detalhes/<span style="color: #006699; font-weight: bold;">$1</span>/<span style="color: #006699; font-weight: bold;">$2</span>&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Agora, o controller fica assim:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p78code20'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7820"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code" id="p78code20"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Produtos <span style="color: #000000; font-weight: bold;">extends</span> CI_Controller
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        parent<span style="color: #339933;">::</span>__construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> index<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// Função index é acessada quando não for passada nenhuma função para o controller</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> detalhes<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id_categoria</span><span style="color: #339933;">,</span> <span style="color: #000088;">$id_produto</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$id_categoria</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// retorna o código da categoria</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$id_produto</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// retorna o código do produto</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h2>Rotas e SEO</h2>
<p>A URL minhaloja.com/1/2/ ficou bem mais curta e elegante, mas não é amigável quando vamos falar de <a href="http://pt.wikipedia.org/wiki/SEO">SEO</a>. É muito melhor ter uma estrutura como:</p>
<p><strong>http://minhaloja.com/cadeiras/cadeira-de-balanco/</strong></p>
<p>Esta URL é &#8220;amigável&#8221; para os motores de busca e, se você tiver, por exemplo, um campo no cadastro de produtos da loja para armazenar o nome da categoria e uma &#8220;descrição de URL&#8221; (slug) do produto &#8211; como &#8220;cadeira-de-balanco&#8221; -, fica muito fácil. Essa técnica é comumente chamada de <strong>URLs amigáveis</strong>.</p>
<p>A regra do exemplo é:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p78code21'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7821"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p78code21"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$route</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'(:any)/(:any)'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;produtos/detalhes/<span style="color: #006699; font-weight: bold;">$1</span>/<span style="color: #006699; font-weight: bold;">$2</span>&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>O controller permanece inalterado; só é preciso buscar no banco de dados os produtos com base nos slugs de categoria e produto &#8211; caso não saiba como criar slugs, confira o artigo &#8220;<a href="http://desenvolvimentoparaweb.com/php/urls-amigaveis-slug-a-wordpress/">URLs amigáveis (slug) à WordPress</a>&#8220;, do blog <a href="http://desenvolvimentoparaweb.com/">desenvolvimento para web</a>.</p>
<h2>Rotas reservadas</h2>
<p>Existem um <em>wildcard</em> reservado no CodeIgniter: &#8220;welcome&#8221;. Ou seja, você não poderá utilizar a seguinte rota em seus projetos:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p78code22'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7822"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p78code22"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$route</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'default_controller'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'welcome'</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h2>Conclusão</h2>
<p>Rotas servem para alterar o relacionamento padrão entre uma URL e um Controller no CodeIgniter. Sabendo utilizar bem os tipos de rotas disponíveis, é possível criar estruturas incríveis, que realmente facilitam o desenvolvimento e acesso a controllers e funções &#8211; e o SEO agradece!</p>
<p>Com estas dicas já é possível configurar suas rotas e melhorar a navegação em seus projetos com CodeIgniter.</p>
<p>Espero que tenham gostado deste meu primeiro artigo no <a href="/">CodeIgniter Brasil</a> e <a href="/feed">fiquem ligados</a> para mais novidades!</p>
]]></content:encoded>
			<wfw:commentRss>http://codeigniterbrasil.com/configuracoes/configuracao-rotas-routes-codeigniter/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
	</channel>
</rss>

