2013-01-09 77 views
0

由於法律原因,我希望在我的論壇上張貼的每個外部超鏈接都首先鏈接到You're leaving this website and are being redirected to a website that is not our property...免責聲明頁面。類似http://www.mydomain.com/?leave=FINALURLHERE會做得很好,但我該如何設置這個系統?通過PHP離開網站免責聲明?

我可以輕鬆製作一個腳本來處理所有網址,但我只希望這發生在外部網址上。任何人都可以推動我走向正確的方向嗎?

+4

您確定此聲明適用於您的情況嗎?提示:它**最有可能**不。 99%的免責聲明不做任何事情,也沒有法律效力。 –

+1

只要檢查你的主機('$ _SERVER ['HTTP_HOST']')是否與URL匹配? – Veger

+1

所以你的問題實際上是「我怎麼能告訴內部和外部的URL分開」? – Philipp

回答

2

大概你在論壇上使用某種形式的BBCode。你可以編輯它來首先添加你的離開頁面。

如果你不是,那麼你將不得不訴諸一些相當凌亂的JavaScript。例如:

var links = document.getElementsByTagName('a'), l = links.length, i, 
    domain = location.protocol+"//"+location.hostname+"/"; 
for(i=0; i<l; i++) { 
    if(links[i].href.substr(0,domain.length) != domain) { 
     links[i].href = "/exit.php?target="+encodeURIComponent(links[i].href); 
    } 
} 
+0

這是一個非常基礎的論壇系統,只有一個wysiwyg編輯器。一個簡單的解決方案是在每個生成的URL之前添加它,但我不知道如何使它只適用於外部URL。 函數checkURL($ stringhere)編輯URL並返回完整的字符串將是最好的,但我沒有經驗足夠的PHP語言來自己做這些事情;-) – Jason