如果你正在建設乙個新**或者對現有**重新設計,我們認為應該將**的 url 轉換為使用者友好的 url,或搜尋引擎友好的 url,這類 url 也稱為語義 url(semantic url)。哪些url 是語義 url 呢?通過如下舉例來進行說明。首先來看一下搜尋引擎比較厭煩的 url:
可以看到轉換之後的 url 更容易被看懂,這類 url 就是語義 url。
除此之外,**一些業務邏輯的實現你更希望放在雲平台上來進行計算和處理,直接在 cdn 邊緣網路中來執行前向重寫邏輯,避免對資料中心來回提出請求,一方面可以提公升使用者體驗,另一方面可以減輕源站壓力。這些業務邏輯的處理包括如下:
以上業務邏輯的處理,你都可以通過又拍雲自定義 rewrite 規則來實現。那什麼是自定義rewrite?如何配置 rewrite 規則來實現業務邏輯及 url 改寫?接下來的章節我們會一一展開。
又拍雲自定義 rewrite 是基於 dsl ( domain specific language )理念來設計的,主要面向開發者使用。充分利用又拍雲 cdn ( content delivery network )分布式邊緣網路的效能及規模,通過又拍雲管理控制台可輕鬆建立rewrite規則,可以實現對url的改寫、重定向、自定義 http頭、請求禁止等處理邏輯。詳細介紹可參見自定義 rewrite。
舉個例子:
最常見的做法,就是將一組 url 層次結構字串,轉換成帶有 query string 的url,或是反向轉換,例如:
經過 url 重寫後,實際的 url 為:
因此,最終你可以使用較直接的方式來輸入 url(這也是 rest 的主要目的),是搜尋引擎優化(seo)的作法之一。而應用程式開發者可以利用這個機制來將引數隱藏起來,可避免讓網路上的惡意使用者收集到有利於發動攻擊的資訊。
通過以上章節,已經理解什麼是自定義 rewrite 了。接下來,就是如何進行 rewrite 規則的編寫和除錯了。
準備工作
1、建立 cdn 服務
如果你需要配置自定義 rewrite 規則,前提條件是在又拍雲平台建立 cdn 服務,具體建立步驟可參見建立服務。
2、熟悉 rewrite 函式、變數、字串變數及其使用方法
自定義 rewrite 支援的函式超過40個,變數超過15個。所以你必須要理解和熟悉每個函式及變數的含義以及使用方法,才可以開始編寫規則。詳細了解請參見自定義 rewrite。
3、確定需要 rewrite 的 url
編寫規則
又拍雲自定義 rewrite 規則包括 url 提取正則和 rewrite 規則兩個部分,分別對應下面的 pattern 和 rule 部分,具體參見如下示例:
1.pattern:^pay/([0-9]+)/([0-9]+)/(.*?).htm$
2.rule:/pay.php?payid=$1&categoryid=$2
第一部分:正在找什麼?
上述的 pattern 也即 url 提取正則,以上正規表示式定義了正在找什麼。此處我們將該正規表示式進行拆分下,然後一一對應,假如示例 url 為:
1、^pay/告訴 web 伺服器,試圖匹配的 url 必須以 pay/這個字串開頭,這與示例 url 中的pay/匹配;
2、接下來的([0-9]+)告訴 web 伺服器在/後面緊跟的是 0-9 之間的數字,該數字至少出現一次,用來匹配的 rule 中的 payid;
3、繼續匹配/,然後又是乙個([0-9]+),道理一樣,用來匹配 rule 中的 categoryid;
4、繼續匹配/,(.*?).htm 匹配任何以.htm 為字尾名,由任何數字或者字元為字首;
5、最後,$ 表示匹配匹配字串結尾。
第二部分:到**去?
這裡就不詳細介紹了,該規則是常規的動態 url 的解析。以上規則生效之後,會將url:
轉換為最後的配置介面如下圖所示:
配置測試
以上規則已經編寫完畢,如何進行除錯,確保以上規則書寫正確,這個時候需要使用到除錯模式,預設為開啟狀態。可以使用命令列工具 curl 即可對規則進行除錯:
1.curl-h"x-upyun-rewrite-preview: true" -v
正式啟用
以上經過除錯,確定該 rewrite 過程符合預期後,即可將除錯模式關閉,此時該 rewrite 過程會對所有命中的請求生效。
url 重定向
1.rule:$when($not($eq($_uri,/live.html)),
$not($_cookie_token))$redirect($_scheme://$_host/live.html)
修改 http 頭部
1.rule:$del_req_header(if-range)
規則解釋:刪除if-range請求頭,忽略if-range頭部。
總結下,又拍雲自定義 rewrite 具有如下優勢及價值,羅列如下:
1、可以配合**將動態 url 轉換為語義 url,以改善搜尋引擎索引編制,從而提高 seo 排名;
2、在又拍雲的邊緣網路中執行前向重寫邏輯,避免對資料中心來回提出請求,從而提高服務效能並減輕工作量 ;
3、應用程式開發者可以利用 url 改寫這個機制來將引數隱藏起來,可避免讓網路上的惡意使用者收集到有利於發動攻擊的資訊
4、充分利用又拍雲 cdn 平台的效能及規模,可靠且可擴充套件,服務能力可以得到最大化;
5、充分利用又拍雲 cdn 邊緣網路的計算能力,減輕客戶源站計算壓力,進而節省資金開銷,有效降低成本;
6、基於 cdn 平台,可以快速部署和下發,全網可以在一分鐘之內生效;
url動態追加引數 seo中的url結構優化
一 url結構 訪問結構 鏈結結構 偽靜態對seo來說非常的重要 靜態頁面 不做處理 不做運算 動態頁面 通過url引數的變化,頁面內容發生變化 偽靜態頁面 樣式很像靜態頁面,但是實際並不存在的頁面稱為偽靜態頁面 動態網頁靜態化好處 1,加快頁面瀏覽開啟速度 2,有利於seo 3,伺服器減壓 4,更...
SEO優化教你如何提公升網域名稱權重?
網域名稱權重在很大程度上決定整個 的排名能力,所以如果想提公升網域名稱權重,需要檢視如下資訊。1 網域名稱年齡2 google pr值 雖然pr值在google排名中的重要性近來下降很多,而且google pr值也不能說明 在其他搜尋引擎的權重,但pr值畢竟是直觀說明外包鏈結的質量和數量的最好指標。...
利用內容營銷提公升長尾詞SEO優化策略
乙個強大的內容營銷活動,可能會引導購物者搜尋長尾關鍵詞,從而產生額外的銷量。上的非目標關鍵詞也可以帶來搜尋流量的關鍵詞,稱為長尾詞 長尾詞就是兩個或兩個以上普通關鍵詞有邏輯性的組合。例如,很多人會搜尋 跑鞋 這個詞,而不是 耐克跑鞋 同樣的,更多的人會搜尋 耐克跑鞋 而不是 耐克free rn男士跑...