2013-12-10 13 views
8

Nel mio sito ho una pagina protetta da password contenente alcuni collegamenti ad altri siti anch'essi gestiti da me stesso che non possono essere protetti da password. Vorrei inserire un codice HTML su uno degli altri siti che gestisco per verificare che la persona che arriva alla pagina sia stata rimandata dall'URL della 'Pagina collegamenti'.Reindirizzamento basato sull'URL del referrer

(ho capito che questo non è un sistema sicuro un'opzione)

Sommario:

If Referrer = 'Links Page URL' *then* Do nothing *Else* Redirect: www.google.com. 

Qualcuno sa un/codice Javascript semplice HTML che posso copiare e incollare nel mio sito ?

risposta

13
if (document.referrer !== "http://www.stackoverflow.com") { 
    window.location.href = "http://www.google.com"; 
} 

Oppure è possibile utilizzare le espressioni regolari per controllare il referrer.

In ogni caso, questa soluzione è davvero, davvero pericolosa. Si può solo disattivare JavaScript nel browser e non sarà reindirizzato ...

4

Prova questo

function url(url){ 
     return url.match(/:\/\/(.[^/]+)/)[1]; 
    } 

    function check() 
    { 
     var ref = document.referrer; 
     if(url(ref) =='www.google.com') 
     { 
      // do something 
     } 
     else 
     { 
     // redirect 
     window.location.href = 'http://yourDomain.com'; 
     } 
    } 
-3

ho trovato document.referrer non funziona per me, ma location.href funziona:

if (location.href != "http://yoursite/index.html") { 
    location.replace("http://yoursite/index.html"); 
} 
+1

Questo non risponde alla domanda, come 'location.href' ottiene l'URL della pagina corrente e non l'URL della pagina di riferimento come l'OP richiesto. Ho downvoted per quella ragione. – TheCarver