2012-11-07 83 views
0

我有一個redirect.php和一個鏈接,它不起作用在WORDPRESS。mod_rewrite外部鏈接問題(wordpress)

我希望當我點擊我的網站「你好」的鏈接,它進入redirect.php,用戶看到5秒的微調,以及用戶退出我的網站hello.com

它看起來像我的mod_rewrite有問題,我無法解決

我真的很感激一個非常詳細的答案。我很初級

這就是我所擁有的。

1 .-我有我的主頁外部鏈接:

<a href="http://redirect.php?link=hello.com">Hello</a> 

2:在redirect.php,我有:

<html> 
<head> 
    ... 
    <meta http-equiv="refresh" content="5;url=<?php echo $_GET['link'];?>" /> 
    ... 
</head> 
<body> 
    <h1>You are leaving my site!</h1> 
    <img src="/images/spinner.gif" alt="spinner" /> 
</body> 
</html> 

回答

0

鏈接<a href="http://redirect.php?...不正確。這應該很可能是<a href="/redirect.php?...或您的服務器上的任何子目錄。

您還應該在您的鏈接參數中包含該協議或將其預先添加到您的元標記中。另外,請確保HTML代碼對您的元標記中的鏈接進行編碼,並在鏈接參數中對域名進行正確的URL編碼。如果你在你的網站的根目錄下的文件redirect.php

<a href="/redirect.php?link=http%3A%2F%2Ftest.com">Hello</a> 

所以,改變鏈接。和meta標籤更改爲:

<meta http-equiv="refresh" content="5;url=<?php echo htmlentities($_GET['link'], ENT_QUOTES,);?>" /> 

,你可能想要做鏈接參數的有效性一些驗證,你可能還需要檢查引薦URL($_SERVER('HTTP_REFERER')),以確保您只爲執行重定向從您自己的網站鏈接(即不要創建open redirect漏洞)。