我正在開發一個網站,因爲某些安全原因,我想禁止在IE 6.0瀏覽器中打開。我知道每個瀏覽器都有一個唯一的標題信息,當我們請求網頁時發送,所以我可以阻止我的網站在IE 6.0或任何瀏覽器中使用javascript,php或使用任何東西?禁止打開網站的Internet Explorer 6.0瀏覽器?
回答
當然,檢查this out(CGI方法,PHP方法,JS方法)
PHP:
<?php
if (eregi("MSIE",getenv("HTTP_USER_AGENT")) ||
eregi("Internet Explorer",getenv("HTTP_USER_AGENT"))) {
Header("Location: http://www.domain.com/ie_reject.html");
exit;
}
?>
JS:
<!--
if (navigator.appName == "Microsoft Internet Explorer") {
document.location = "http://www.domain.com/ie_reject.shtml";
} else {
document.location = "http://www.domain.com/realhomepage.html";
}
// -->
<!--[if (gt IE 6)|!(IE)]><!--> <html> Entire website? </html> <!--<![endif]-->
認真不過,你可以使用IE條件註釋點菜HTML5 Boilerplate:
<!doctype html>
<!--[if lt IE 7 ]> <html lang="en-us" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en-us" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en-us" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en-us" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en-us" class="no-js"> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1" >
<meta charset="utf-8">
...
因爲它只適用於互聯網瀏覽器,所以不會工作。你應該使用低級可見的評論。在IE 6的特別說明 –
@Joe:好點 - 固定 – rsp
真正的答案是:你不能。頭部中的某個UA太容易被惡意使用,出於安全原因,如果有人想在不允許的應用上使用IE6,可以使用一個簡單的代理來完成它,讓應用思考它是IE8。
這就是說,你可以使用get_browser函數輕鬆地在PHP中完成它。
這主要依賴於主機服務器的browsercap.ini文件,它根本不可靠...... –
幸運的是,IE對於特殊的條件註釋非常友善,所以'<! - [if(gt IE 6)|! (IE)]>'這會呈現在除IE6以外的所有內容'<! - ' - 無需依賴標頭。 – rsp
不過,可以通過實現刪除這些條件註釋的代理來解決這個問題。我並不認同很多漂亮的解決方案,但是從安全角度考慮這個問題,應該考慮到這一點。 –
你可以使用這樣的條件註釋。
<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->
的Internet Explorer 6的未修改版本將運行這段代碼,其他瀏覽器則不會。但是我不知道這是否滿足您的安全考慮。一切都可以僞造。
,你也可以檢查報頭信息,但其同樣的問題...
請告訴我們更多關於你正在試圖在這裏做。
對於IE來說很容易,因爲微軟添加了特殊標籤,您可以檢測到哪些IE版本。它比嘗試使用User-Agent
標題更可靠。像這樣的東西應該工作(在你的HTML的頭部)
<!--[if lte IE 6]>
<meta http-equiv="refresh" content="0;url=http://yoursite.com/ie6_is_a_steaming_pile.html">
<[endif]-->
顯然有自己的網站,並可能是一些比較委婉;-)
一些簡單的PHP替代鏈接,您可以包括在每一頁上抓住MSIE用戶:
if(preg_match('/MSIE/i',$_SERVER['HTTP_USER_AGENT'])){
die('Your browser is not allowed');
}
還有很多其他更復雜和全面的方式,你可以做到這一點。
如果你真的想這樣做......
在PHP:
if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE 6")) {
// exit or redirect or whatever...
exit();
}
我會說:這樣做的權利!有專門的課程,跟蹤所有瀏覽器和設備的所有USER_AGENTS,創建它們的數據庫並將其整合到您的工作會話例程中。每次用戶進來,確定他的用戶代理信息[類型,名稱和版本],然後將數據傳遞到您的顯示例程,這應該確定要打印的內容和設計模板。這樣,你可以建立一個網站,這是一個搜索引擎優化友好,用戶友好,整潔,易於組織[=開發人員友好] - 一個,這是一個非常罕見的事情在今天的互聯網偶然發現... ...所以,做對!
沒有必要依賴User-Agent頭部或根本不使用任何類型的服務器端甚至客戶端腳本。你可以用簡單的舊靜態HTML來完成。請參閱我的回答和其他有關條件評論。 – rsp
我其實更喜歡讓人們安裝[Chrome Frame](http://www.google.com/chromeframe)而不是IE7或IE8,這比安裝新的瀏覽器更容易,結果實際上更好(甚至更好IE8完全不能通過Acid3測試)。 – rsp
我不反對,除了測試以外,我不碰IE。我只是想知道我在「欺騙」人們放棄他們心愛的恐龍......這讓我開心! – bpeterson76
- 1. IE7 Internet Explorer無法打開互聯網網站,操作中止
- 2. Internet Explorer加速器 - 打開默認瀏覽器
- 3. 使用Internet Explorer瀏覽器
- 4. 多個Internet Explorer瀏覽器
- 5. 強制使用Internet Explorer打開網頁
- 6. 禁止Internet Explorer IE腳本
- 7. WinRT:無論默認瀏覽器在Internet Explorer中打開鏈接
- 8. 如何在Internet Explorer選項卡中打開SWT瀏覽器?
- 9. 使用POST參數打開Internet Explorer瀏覽器
- 10. 使用Internet Explorer瀏覽器的Selenium ide
- 11. 在Internet Explorer中的瀏覽器模式
- 12. 瀏覽器Internet Explorer專用的css
- 13. 打開網絡瀏覽器
- 14. 在FF和Internet Explorer中,Chrome瀏覽器中的Chrome瀏覽器
- 15. 多個Internet Explorer版本瀏覽器測試(Internet Explorer 6-8)?
- 16. ASP.Net禁止使用Internet Explorer的URL
- 17. Rails 5禁止訪問Internet Explorer?
- 18. 在vb「網頁瀏覽器控件」中打開Chrome瀏覽器
- 19. Internet Explorer到谷歌瀏覽器在wapache
- 20. Internet Explorer瀏覽器問題引導
- 21. 在除Internet Explorer 8以外的所有瀏覽器上運行的網站
- 22. 網站顯示出來的Internet Explorer是舊版本的IE瀏覽器11
- 23. 僅在Internet Explorer瀏覽器中可用的ASP.Net網站的哪些功能?
- 24. 在Windows 7上的IE瀏覽器的ActiveX控件的Internet Explorer 6.0的
- 25. 如何使用谷歌瀏覽器打開網站
- 26. 爲什麼我的WordPress網站不能在Internet Explorer中打開?
- 27. 僅限Internet Explorer瀏覽器不能連接到本地網絡上的站點
- 28. 不在Internet Explorer中呈現的網站
- 29. AngularJs網站模板無法在Internet Explorer中打開
- 30. PDF在Internet Explorer 8中未打開
謝謝你的PHP是更好的選擇..和工作! –
,如果我想用Mozilla和鉻。我永遠不會 。做這個bt爲實踐目的wt我應該改變在上面的php代碼? –
正如您在eregi()的PHP手冊頁上發現的那樣,PHP 5.3已被棄用,並且不鼓勵繼續使用。相反,你應該使用'preg_match()'或者更簡單的'strpos()'來應用這樣的應用程序。 –