Tecnologia

Atualizado em 10 nov 2009 15h13

Módulo rewrite (htaccess) - passando urls como parametro

  • URL Curta:

Venda: Ssd Sata Wd Green 240gb - Para Notebook, Mini Pc - 2.5

Venda: Memoria Corsair 8gb (2 X 4gb) Ddr3 Notebook, Mini Pc

Venda: Injetor Poe Eap225 24v Passivo - Tl-poe2412g - Tp-link

Venda: Injetor Poe Ubiquiti 802.3at 48v 30w Gigabit U-poe-at

Esses dias precisei passar urls completas como parâmetro nas regras do .htaccess, porém os mais familiarizados deve saber que isso não é possível, pensei que passando ela com urlencode() o problema estaria resolvido, mas pra minha surpresa com com um urlencode() ainda sobrou caracteres não permitidos.

Logo tive que achar a solução para este inconveniente e como sempre estou compartilhando com vocês. A solução é simples e fácil. Ao invés de usarmos o urlencode() apenas uma vez, bata usarmos duas vezes, exemplo:
.htaccess
RewriteEngine On
Options -Indexes
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^url/([^/]+).url$ index.php?url=$1


Arquivos index.php:
<a href="url/<?=urlencode(urlencode("http://mndti.com"));?>.url">TESTE</a>

<?=$_GET['url'];?>


Se você acessar:
http://localhost/url/http//mndti.com.url
Vai dar erro, mas se você acessar ele com urlencod duplo:
http://localhost/url/http%253A%252F%252Fmndti.com.url

vai funcionar...

© MNDTI - Tecnologia e Informação. Todos Direitos Reservados. Política de privacidade.