WordPress 製作響應式企業網站、響應式外貿網站特別特別頭痛的是 IE 兼容問題,為了省事起見,搞一個頁面提示用户升級瀏覽
器或者顯示簡單的靜態頁面最好不過了。那麼我們就需要運維來配置 nginx rewrite 規則了。
配置規則如下:
server {
listen 80;
server_name xxx.xxx.com;
root /www ;
if ( $http_user_agent ~* "MSIE [6-9].[0-9]") {
rewrite /ie.html break;
}
}
解釋一下上面的配置
$http_user_agent 客户端 agent 信息 (這個是瀏覽器的標識,如果你開了訪問日誌的話,可以去看一下。每種瀏覽器的標識可能都不一樣。)
~* 使用正則表達式,並且不區分大小寫
MSIE [6,7].[0-9] MSIE-IE 瀏覽器的標識,這裏匹配的是 IE 瀏覽器在版本在 6 到 9 的,例如 6.1,7.0,8.2 等等···
rewrite /ie6.html 只要匹配則返回指定的靜態頁面
break 停止執行當前這一輪的 ngx_http_rewrite_module 指令集
如果需要驗證是否生效的話,這裏提供一個比較方便的工具 IETester,可以模擬 IE 任意版本的瀏覽器來測試。
拓展瞭解:nginx 全局變量
$args #這個變量等於請求行中的參數。
$content_length #請求頭中的 Content-length 字段。
$content_type #請求頭中的 Content-Type 字段。
$document_root #當前請求在 root 指令中指定的值。
$host #請求主機頭字段,否則為服務器名稱。
$http_user_agent #客户端 agent 信息
$http_cookie #客户端 cookie 信息
$limit_rate #這個變量可以限制連接速率。
$request_body_file #客户端請求主體信息的臨時文件名。
$request_method #客户端請求的動作,通常為 GET 或 POST 。
$remote_addr #客户端的 IP 地址。
$remote_port #客户端的端口。
$remote_user #已經經過 Auth Basic Module 驗證的用户名。
$request_filename #當前請求的文件路徑,由 root 或 alias 指令與 URI 請求生成。
$query_string #與 $args 相同。
$scheme #HTTP 方法 (如 http,https) 。
$server_protocol #請求使用的協議,通常是 HTTP/1.0 或 HTTP/1.1 。
$server_addr #服務器地址,在完成一次系統調用後可以確定這個值。
$server_name #服務器名稱。
$server_port #請求到達服務器的端口號。
$request_uri #包含請求參數的原始 URI,不包含主機名,如:」/foo/bar.php?arg=baz」 。
$uri #不帶請求參數的當前 URI,$uri 不包含主機名,如」/foo/bar.html」 。
$document_uri #與 $uri 相同。