visitado una página para pagina otra misma link hipervinculos hipervinculo hacer etiqueta enlazar enlaces enlace ejemplos dentro como color codigo cambiar html hyperlink download access
http://sy-stu.org/stu/PublicFiles/StdLibrary/Exam.ziphttp://sy-stu.org/stu/PublicFiles/StdLibrary/Exam.zip

una - hipervinculos en html ejemplos



Cómo evitar enlaces profundos a archivos en mi sitio web (5)

Poseo un sitio web que contiene muchas cosas de freeware para descargar en él. El problema al que me enfrento es que personas de todo el mundo toman los enlaces directos de los archivos (por ejemplo, archivos .zip) y los publican en sus sitios web y foros generales. Estoy obteniendo una gran cantidad de ancho de banda y está bien, pero el número de páginas visitadas es bajo. ¿Hay alguna forma o guión que pueda agregar a los enlaces, de modo que cuando alguien presiona el enlace desde un sitio web extranjero, en su lugar se abra una página de mi sitio web, que luego le permita descargar el archivo para que pueda obtener más visitas.

Por ejemplo, esta es una dirección de mi sitio web:

http://sy-stu.org/stu/PublicFiles/StdLibrary/Exam.zip

Cuando alguien lo presione, comenzará el proceso de descarga directamente.


¿Por qué no simplemente hacer los enlaces dinámicos e indirectos, por ejemplo:

en la página X: (estático)

<a href="Y">SuperNeat Program</a>

en la página Y: (generado dinámicamente)

Click here to download <a href="Z.php?timestamp={timestamp}&counter={counter}&hash={hash}"> SuperNeat Program</a>

y reemplaza la marca de tiempo con la hora actual en mseg desde 1970, contador = un contador que incrementa una vez por descarga, hash = hash MD5 de concatenar (marca de tiempo, contador, sal secreta) donde la sal secreta = cualquier código favorito que mantiene en secreto.

Luego, en la página Z.php, simplemente vuelve a calcular el hash del contador y la marca de tiempo en la cadena de consulta, comprueba que coincida con el hash en la cadena de consulta y que la marca de tiempo sea reciente (por ejemplo, de los 30 minutos o 60 minutos anteriores lo que sea). Si es así, entonces sirve el archivo en cuestión. Si no es así, arroja un mensaje de error. Esto le da a alguien solo un breve período de tiempo para vincular directamente a su archivo. Si ni siquiera quiere eso, realice un seguimiento de los valores del contador recibidos en la cadena de consulta Z.php y no los acepte más de una vez.


No proporcione un enlace directo al archivo que está sirviendo. Proporcione una secuencia de comandos que envíe el contenido a través del script una vez que presione el botón Enviar.

Haga una búsqueda web para enviar archivos a través de cgi.

Aquí hay un enlace limpio que encontré en línea: aquí


No soy en absoluto un experto en web, pero estaba pensando en el siguiente puntero:

Si está utilizando asp.net, ¿podrían los manejadores de http o los módulos configurados en la ayuda del nivel del sitio web (mucha información sobre aquellos en la web, lo busqué recientemente para algún trabajo, aquí hay un artículo, por ejemplo).

La idea es interceptar la solicitud antes de que llegue al archivo de destino y redirigirla a la página que desea mostrar; por ejemplo, si alguien desea navegar a la url que ha publicado (" http://sy-stu.org/stu/PublicFiles/StdLibrary/Exam.zip ") intercepte esta llamada, use alguna búsqueda para encontrar la página que deseo mostrar y redirigir la solicitud allí; supongo que los usuarios que siguen un enlace no estarán demasiado molestos (a menos que hayan hecho "guardar destino como", lo que resultaría en que guarden algo de HTML y no de ZIP).

Sin embargo, hay un "agujero" en mi plan: ¿cómo se proporciona un enlace que funcione desde su propia página? Creo que puede diferenciar entre las solicitudes que provienen de su sitio web y las que provienen de otros, las cuales puede verificar en el controlador / módulo examinando el objeto de solicitud.


Su sitio está alojado en un servidor web Apache, por lo que debería poder hacer lo siguiente en el httpd.conf (o bloque de host virtual) de su sitio.

RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www/.)?yourdomain/.com/ [NC] RewriteRule ^/PublicFiles/ /page-about-direct-links.html

Eso es básicamente decir:

  1. Activar el motor mod_rewrite
  2. Si HTTP Referrer no está en blanco ...
  3. Y no contiene mi nombre de dominio (con o sin "www.") ...
  4. Redirige las solicitudes de cualquier elemento en / PublicFiles / a /page-about-direct-links.html

Puede encontrar más información sobre mod_rewrite aquí: mod_rewrite - Apache HTTP Server


Si usa PHP, puede tener una secuencia de comandos que vincule al usuario con la descarga, pero solo si $_SERVER[''HTTP_REFERER''] es de su sitio. Si no es usted redirige a su sitio.