<?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>Código com Café &#187; SEO</title>
	<atom:link href="http://www.codigocomcafe.com/category/seo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codigocomcafe.com</link>
	<description>Programação e assuntos relacionados. Com café.</description>
	<lastBuildDate>Sun, 11 Jul 2010 00:42:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>URLs Amigáveis com o módulo Rewrite</title>
		<link>http://www.codigocomcafe.com/2009/08/urls-amigaveis-com-o-modulo-rewrite/</link>
		<comments>http://www.codigocomcafe.com/2009/08/urls-amigaveis-com-o-modulo-rewrite/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 16:37:00 +0000</pubDate>
		<dc:creator>George Marques</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[servidores]]></category>

		<guid isPermaLink="false">http://www.codigocomcafe.com/index.php/2009/08/11/urls-amigaveis-com-o-modulo-rewrite/</guid>
		<description><![CDATA[Hoje em dia o a utilização de SEO é muito importante. Ainda mais com essa nova briga de motores de busca. E uma das dicas para melhorar a visibilidade é usar URLs que descrevam a página, em vez de códigos sem sentido. E isso também ajuda os visitantes. Você pode até pensar: &#8220;Se eu fizer [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hoje em dia o a utilização de <a href="http://en.wikipedia.org/wiki/Search_engine_optimization">SEO</a> é muito importante. Ainda mais com essa nova briga de motores de busca. E uma das dicas para melhorar a visibilidade é usar URLs que descrevam a página, em vez de códigos sem sentido. E isso também ajuda os visitantes. Você pode até pensar: &#8220;Se eu fizer isso, não posso mais usar os scripts de servidor&#8221;, mas isso está completamente errado. É aí que entra o módulo Rewrite do Apache.</p>
<p style="text-align: justify;">
O módulo Rewrite reescreve uma URL baseado nos parâmetros que você definir. Assim, um link do tipo <em>http://www.exemplo.com/noticia/1234</em> pode ser transformado em<em> http://www.exemplo.com/noticias.php?id=1234</em> permitindo o uso de <span style="font-style: italic;">scripts</span> personalizados.</p>
<p><span id="more-4"></span></p>
<p>Vamos ao lado prático da questão. Primeiro, temos que saber se o <code>mod_rewrite</code> está ativado no servidor. Para isso, basta dar uma olhada no phpinfo().</p>
<p><img class="size-full wp-image-35" title="phpinfo" src="http://www.codigocomcafe.com/wp-content/uploads/2009/08/phpinfo.png" alt="mod_rewrite se encontra na lista" width="619" height="317" /></p>
<p>Caso não consiga encontrar, outra alternativa é usar o seguinte script:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;mod_rewrite&quot;</span><span style="color: #339933;">,</span><span style="color: #990000;">apache_get_modules</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Parabéns, o Módulo Rewrite está habilitado!&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Sinto muito, mas o Módulo Rewrite não foi habilitado :(&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Se o servidor é seu (e você está usando linux) pode usar o comando</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># a2enmod rewrite</span></pre></div></div>

<p>para habilitar o módulo.</p>
<p>Para criar uma regra de redirecionamento, você precisa alterar o arquivo .htaccess na raiz do seu site ou em qualquer pasta que deseje utilizar o recurso. Caso o tal arquivo não exista, você podera criá-lo. É possível que o servidor impeça a utilização desse arquivo, mas em geral ele é permitido. Enfim, adicione as seguintes linhas no arquivo .htaccess:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">On</span>
<span style="color: #00007f;">RewriteCond</span> %{SCRIPT_FILENAME} !-f
<span style="color: #00007f;">RewriteCond</span> %{SCRIPT_FILENAME} !-d
<span style="color: #00007f;">RewriteRule</span> ^(.*)$ <span style="color: #00007f;">script</span>.php?redir=$<span style="color: #ff0000;">1</span></pre></div></div>

<p>A primeira linha habilita o módulo Rewrite no diretório em questão. A segunda evita que a regra se aplique a arquivos que existam fisicamente. A terceira é idêntica à segunda, mas diz respeito aos diretórios ao invés de arquivos. E a última é a regra propriamente dita, que redireciona qualquer texto após o diretório do .htaccess para script.php, enviando o texto na variável <code>redir</code>. Assim, uma URL <em>http://www.exemplo.com/noticia/1234</em> será enviado para <em>http://www.exemplo.com/script.php?redir=noticia/1234</em>. Lembrando que isso não é um &#8220;redirecionamento&#8221; e sim uma renomeação de URL, os navegadores e motores de busca abrem a página como se ela estivesse fisicamente em <em>http://www.exemplo.com/noticia/1234</em>.</p>
<p>Outro exemplo é o caso de alteração de domínio. Caso você mude do <em>www.exemplo.provedor.com</em> para <em>www.exemplo.com</em>, você poderia criar um <em>script</em> no <code>index.php</code> do tipo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;HTTP/1.1 301 Moved Permanently&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;location:http://www.exemplo.com&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Isso é válido, mas se alguem acessar a URL <em>http://www.exemplo.provedor.com/noticia/1234</em> simplesmente receberia um erro 404 de página não encontrada. Para evitar isso, usa-se o módulo Rewrite, usando a seguinte regra no .htaccess:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">On</span>
<span style="color: #00007f;">RewriteRule</span> (.*) http://www.exemplo.com/$<span style="color: #ff0000;">1</span> [R=<span style="color: #ff0000;">301</span>,L]</pre></div></div>

<p>Essa regra envia, por exemplo, a URL <em>http://www.exemplo.provedor.com/noticia/1234</em> para <em>http://www.exemplo.com/noticia/1234</em>, ainda enviando o código 301 de redirecionamento permanente, informando aos navegadores, caches e mecanismos de busca, que este site mudou de endereço.</p>
<p>Mais informações sobre o módulo Rewrite pode ser encontrado na documentação do Apache em <a href="http://httpd.apache.org/docs/2.2/rewrite">http://httpd.apache.org/docs/2.2/rewrite</a>.</p>
<p><span style="font-size:75%;">Fontes:</p>
<ol style="font-size:65%;">
<li><a href="http://www.clubepc.org/urls-amigaveis-com-mod_rewrite-16-11-2007">Clube PC &#8211; Ativando o mod_rewrite</a>.</li>
<li><a href="http://www.gdhpress.com.br/servidores/leia/index.php?p=cap6-27">Servidores Linux, Guia Prático: mod_rewrite</a>.</li>
</ol>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigocomcafe.com/2009/08/urls-amigaveis-com-o-modulo-rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
