Hoy toca un artículo con fines exclusivamente educativos. Vamos a ver una manera muy simple de enmascarar enlaces en nuestra web. Algo que puede ser útil para, por ejemplo, hacer más amigables determinados enlaces. Especialmente, en el caso de los enlaces a programas de afiliados, que no acostumbran a ser muy amigables con los buscadores.
Así pues, como enmascarar enlaces en cuatro sencillos pasos:
- El primer paso sería crear una nueva carpeta en el servidor. Por ejemplo, http://www.midominio.com/clic/
- A continuación, subiríamos en este directorio un archivo index.php con los siguientes datos:
<?php $n = $_GET['n']; // Enlaces a enmascarar $link[1] = "http://www.programa.de/afiliados/numerouno.html"; $link[2] = "http://otroprogramadeafiliados.com/?ref=1234"; header("HTTP/1.1 301 Moved Permanently"); header("Location: $link[$n]"); header("Connection: close"); ?> - El siguiente paso es modificar o crear el archivo robots.txt que deberíamos tener o subir en el raíz. Suponiendo que no tengamos creado ninguno previamente, nuestro http://www.midominio.com/robots.txt debería contener:
User-agent: * Disallow:/clic/ - Ahora podremos enlazar de esta manera http://www.midominio.com/clic/?n=X con las direcciones que hemos listado en el archivo php.
Por ejemplo, para enlazar con la URL http://otroprogramadeafiliados.com/?ref=1234 que está en $link[2] haríamos “http://www.midominio.com/clic/?n=2″. Podemos tener tantas direcciones como queramos, simplemente añadiendo variables de la forma $link[X] en el fichero index.php.
Esta sería una manera simple de enmascarar algunos enlaces de programas de afiliados, aunque se podría utilizar para cualquier tipo de enlace. Por ejemplo, ¿qué búsqueda es la número 1 en Google?
Actualización: Si tenemos la posibilidad de tocar el archivo .htaccess del servidor, en Diario a Borbo nos proponen una solución que consta de una sola línea al final de dicho archivo:
Redirect permanent /go/enlace http://www.dominio.com/?ref=XXX
Etiquetas: enmascarar enlaces, htaccess, php

Cómo enseñáis a ser malos
No quiero verte poniéndolo en práctica, eh? :p
Venid al B&B de hoy !!
Dont be evil… marcos comentas en todos los comentarios de aqui? xDDDD tienes un bot?
Acabaréis llegando a las manos vosotros dos… :p Zordor, a ver si te pillo por Skype un día que tengo que comentarte algo!
Está muy bien el truco. Incluso tiene aplicaciones no sólo para SEO y posicionamiento, también es aprovechable por “mentes inquietas”.
El conocido “phising” utiliza técnicas muy similares =P
[...] el blog de LinkLift escribierón un artículo ‘Como enmascarar enlaces en 4 pasos‘. Especialmente, en el caso de los enlaces a programas de afiliados, que no acostumbran a ser [...]
Para completar un poco mejor el ejemplo que proponeís a nivel de PHP, sería interesante realizar una comprobación de la variable que pasamos como parámetro con la función de PHP is_int.
Si es un entero y está entre dos números (total de enlaces), en este caso 1 y 2, se realiza el enmascaramiento.
En caso contrario, volver a la página principal.
Aunque prefiero la realizar esta tarea con .htaccess
Otra cosilla más, el nombre del blog está mal escrito es Diario a Borbo con ‘b’ no con ‘d’, es una confusión muy normal aunque tampoco pasa nada porque tengo registrado el dominio con ‘d’ :p
Un saludete.
Corregido Cinefilo! Lo hubiera leido un millón de veces y habría seguido creyendo que ponía a borDo!
Muchas gracias por la aportación y un saludo!
@xema no pasa nada, casi el 80% sigue pensando que es con ‘d’ en vez de ‘b’.
ups, lo tenia pendiente desde que cambie la plantilla y al final se me olvido meterlo en el htaccess
El mail me ha servido de recordatorio jeje
A ver si lo entiendo:
Por ejemplo yo quiero enmascarar esta URL:
http://ejemplo.com/index.php?refn=1234567
Desde este sitio:
http://www.misitio.com/
He probado a poner las dos formas en el .htaccess después de:
Redirect permanent /go/enlace
Y las dos me dan error de apache.
¿Qué hago mal?
Devorador, en principio la directiva del apache deberia ser:
Redirect permanent /go/enlace http://ejemplo.com/index.php?refn=1234567
Si no te funciona de esta manera, deberias probar la de los 4 pasos. Tu .htaccess puede contener otras reglas o puede requerir otros conocimientos.
Si, ha funcionado, pero para más claridad ponerlo así:
redirectpermanent http://www.enlace-desde-mi-sitio http://www.enlace-a-referido
la gente (yo potr ejemplo) pouede no entender a la primera eso de /go/enlace
Otra solución, mas genérica, podría ser abrir el .htaccess del directorio a usar y poner:
RewriteEngine on
RewriteBase /
# En la siguiente linea el http://1 lleva un $ antes del 1.
RewriteRule ^(.*)$ http://$1 [NE,R=301,L]
Los enlaces se han de hacer del estilo:
directorio/url_sin_el_http://
En mi web, un ejemplo bastante complejo sería:
http://www.naguissa.com/link/www.google.es/search?hl=es&safe=off&client=firefox-a&rls=org.mozilla%3Aes-ES%3Aofficial&hs=ak4&q=naguissa&btnG=Buscar&meta=
Cada dia aprendo a ser mas malo
Gracias por la idea!!