體驗更優排版請移步原文:http://blog.kwin.wang/website/nginx-rewrite-realize-domain-forward.html
自己的blog域名最開始用的vblog.win,后來搞到kwin.wang就換用了 http://blog.kwin.wang 這個子域名,原先使用米發把vblog.win轉發到主站,后來米發用了一段時間就不能正常轉發了,證明免費的東西還是不太靠譜,前段時間將自己的網站重新改版建立了一下,幾個站點使用Nginx做反向代理,這里就想用Nginx來實現一下域名轉發。
Nginx有個rewrite規則,就是用來實現URL重定向的,這里簡單介紹:
rewrite <regex> <replacement> [flag];
關鍵字 正則 替代內容 flag標記
flag標記說明:
last //本條規則匹配完成后,繼續向下匹配新的location URI規則
break //本條規則匹配完成即終止,不再匹配后面的任何規則
redirect //返回302臨時重定向,瀏覽器地址會顯示跳轉后的URL地址
permanent //返回301永久重定向,瀏覽器地址欄會顯示跳轉后的URL地址
我的配置是這么寫的:
server { listen 80; server_name vblog.win www.vblog.win; rewrite /.* http://blog.kwin.wang$uri permanent;
}
這里 $uri 是指匹配正則后跳轉的目標地址,比如訪問 vblog.win/about 就會跳轉到 http://blog.kwin.wang/about,非常簡單。
使用域名轉發有利於網站首選域的確認,多個路徑對應同一資源域的情況應該盡量采用這種方式來處理,有利於網站權重的集中,對於搜索引擎和用戶來說都很友好。另外,對Nginx rewrite的介紹比較簡單,更深層次使用場景還有待研究。