2012-11-01 34 views
4

我聽說通常的方式,我從一個HTML頁面重定向,像來自HTML的重定向已棄用?

<meta http-equiv="REFRESH" content="0;url=page.html"> 

由最新的HTML過時。它是否真實,如果是這樣,還有哪些其他方式可以重定向?

+1

這實際上並沒有被棄用。沒有理由尖叫'REFRESH','刷新'會很好。 – JakeParis

回答

5

的正確方法重定向是發送重定向headers。 您需要將狀態從200 OK更改爲適當的3xx status。那麼你還需要包含Location: http://yourRedirectURL標題。實現取決於您在後端使用的編程語言。

2

使用Location標頭既無縫又有效,可以將某人重定向到另一個頁面,假設您只是使用零超時。

除非您將它們放置在着陸頁上,然後重定向它們,否則請使用位置標題。

我還應該注意,位置標題指定應該提供一個完全合格的地址,以便登陸並且不使用絕對或相對的基於站點的路徑。例如。

Location: http://www.google.com/ 

相反的:

Location: /login 
Location: ../../home 
+0

感謝您的回覆..但我有點困惑。 「位置」標頭應該放在哪裏,它是HTML的一部分? – John

+1

這不是HTML。它是HTTP協議的HTTP頭部分。這是通知客戶端的404 Not Found錯誤的相同部分。它們是從遠程Web服務器到您的Web瀏覽器的消息。您不能在靜態HTML文件中指定它們。您必須使用腳本(PHP,ASP等)或直接配置Web服務器。另見http://en.wikipedia.org/wiki/List_of_HTTP_header_fields –

2

如果使用的是PHP中,你可以使用下面的代碼(之前任何其他輸出到瀏覽器):

<?php header('Location: http://example.com'); ?> 
1

它在技術上不會被棄用,但這是因爲在「規範」中氾濫使用僞術語「棄用」。元重定向機制被描述爲「不應該」in HTML 4.01

「注意。某些用戶代理支持使用META在指定的秒數後刷新當前頁面,並可以用不同的URI替換它。作者不應該使用這種技術將用戶轉發到不同的頁面,因爲這會使某些用戶無法訪問該頁面。 「

雖然這些示例是關於不同用途的,但HTML5草案,儘管有describe meta刷新機制,但沒有說明這些事情。這並沒有使它更好。它不應該用於將地址重定向到新地址,除非您無法影響服務器行爲,以便發生適當的HTTP重定向。在這種情況下,建議在元重定向不起作用的情況下,將新地址的正常鏈接添加到文檔正文中。