2014-04-04 27 views
2

我看了一下大約5個大網站的重定向頁面的源代碼(它們會重定向到他們的贊助商)。是否有任何缺點PHP重定向,因爲它似乎主要網站選擇使用JavaScript重定向?

其中約4使用這些不同的JavaScript重定向:

<script type="text/javascript"> 
window.location = 'http://www.destination.com'; 
</script> 

OR

<script type="text/javascript"> 
setTimeout(function() { 
window.location.replace('http://www.destination.com'); 
}, 1200); 
</script> 

OR

<script type="text/javascript"> 
$(function() { 
setTimeout(function() { 
Redirect(); 
}, 1500) 
}); 

function Redirect() { 
window.location = $('#redirect-to').val(); 
} 
</script> 

OR

<script type='text/javascript'> 
window.location.href='http://www.destination.com' 
</script> 

,另一個使用了HTTP META REFRESH:

<META HTTP-EQUIV='refresh' CONTENT='0;URL="http://www.destination.com"' /> 

問題:

因爲我知道,PHP,特別是重定向,如:

header("refresh:0;url=http://www.destination.com"); 

是 「隱形」在源代碼中,我想知道:

  1. 有沒有辦法告訴PHP重定向是否也在這些頁面上同時使用?

  2. 既然上面的代碼存在 - 你認爲PHP重定向正在使用?如果PHP不起作用,這些代碼是否只是「備用」呢?

  3. 如果是這樣,爲什麼會需要回退,這樣一個簡單的PHP重定向會出現什麼問題?

  4. 如果沒有,那麼爲什麼網站開發者選擇使用JS/META REFRESH over PHP?與JS/META相比,PHP有什麼缺點嗎?

謝謝!

編輯:

我不認爲包括在重定向延遲,展示內容,或運行的各種腳本,而這樣做的重定向,可以作爲使用JS/META在PHP中的動機,因爲這可以用PHP來完成爲好,使用此代碼,例如:

<?php 
header("refresh:10;url=http://www.domain.com"); 
?> 
<!doctype html> 
<html> 
<head> 
</head> 
<body> 
Redirecting you. 
<script type="text/javascript">code</script><noscript>code</noscript> 
</body> 
</html> 
+0

在我看來,PHP重定向(或.htaccess)更好,因爲它們更可靠,如果用戶關閉了JavaScript,那就意味着沒有重定向。另外5個網站不算「最」測試至少20個。 –

+0

那麼,這些網站在Google的主頁關鍵字排名首位,所以我認爲它們當然可以作爲一個很好的例子來提出這些問題 – getbuck

+0

人氣很少與質量掛鉤。 – Quentin

回答

2

是不是真的有這樣的事,作爲一個PHP重定向。有一個HTTP重定向,您可以使用PHP(以及其他許多技術)發送到瀏覽器。

有沒有辦法告訴PHP重定向是否也在這些頁面上同時使用?

除非您使用明確忽略HTTP重定向的工具(並且您知道自己是否是),否則您將看到重定向的資源,而不是原始資源。

由於上述代碼存在 - 您認爲PHP重定向正在被使用嗎?如果PHP不起作用,這些代碼是否只是「備用」呢?

沒有

如果是這樣,爲什麼會需要一個回退,有什麼可以去錯了這樣一個簡單的PHP重定向?

缺少URL的錯誤,沒有什麼可以出錯。

如果沒有,那麼爲什麼網站開發者選擇使用JS/META REFRESH而不是PHP?與JS/META相比,PHP有什麼缺點嗎?

我能想到的使用文檔級重定向的唯一理由是:

  • 爲了做一個延時重定向並顯示用戶的消息第一
  • 要在運行JavaScript文件(例如收集關於瀏覽器的信息)並在重定向之前或同時將其發送到服務器。
+0

但是有可能創建一個PHP「重定向」頁面,這兩個頁面都會有時間延遲,並且運行Javascript和其他內容在頁面上顯示。如果你願意,我可以給你一個這樣的代碼的例子。 – getbuck

+0

我用這樣的示例代碼編輯了我的問題。 – getbuck