新聞發(fā)布
管理系統(tǒng)提問(wèn)
1、不加www有哪些好處和壞處?
2、去掉www是否會(huì)影響網(wǎng)站的SEO(主要是排名和收錄)?(前提是過(guò)去有加www)
3、用什么方式去跳轉(zhuǎn)好?(如301)
這個(gè)問(wèn)題我琢磨過(guò)很久,分享一下心得
1、不加www有哪些好處和壞處?
不加 www 的裸域名好處主要是域名更加簡(jiǎn)短、容易記憶 壞處就多了,講幾個(gè)主要的技術(shù)原因
裸域名只能綁定 DNS 的 A 記錄,不能綁定 CNAME 記錄 也就是說(shuō)你不能把裸域設(shè)定為另外域名的別名 很多時(shí)候這對(duì)管理不是很方便,特別是使用第三方托管服務(wù)的時(shí)候 如果第三方遷移服務(wù)器導(dǎo)致 IP 地址變更,你必須自己去更改 DNS 的 A 記錄
比如你的個(gè)人博客采用 Tumblr 的服務(wù),如果使用裸域,你需要手動(dòng)將你域名的 A 地址指向 Tumblr 指定的 IP 地址 Tumblr 如果遷移了機(jī)房,所有通過(guò)這種方式設(shè)定個(gè)人域名的用戶都必須更改自己的 DNS 才能繼續(xù)使用,否則服務(wù)就會(huì)中斷 使用子域名的 CNAME 記錄就相對(duì)簡(jiǎn)單很多,只需要將 www 子域名的 CNAME 字段指向 http://domains.tumblr.com 這個(gè)域名,之后如果 Tumblr 更改 IP 地址,他們只需要重新設(shè)置 http://domains.tumblr.com 這個(gè)域名的 A 記錄,而無(wú)需要求每個(gè)用戶去更改 DNS 記錄
這個(gè)技術(shù)上的限制導(dǎo)致許多大型的第三方服務(wù)商不支持使用裸域 典型的如 Google 的服務(wù),現(xiàn)在都不能使用裸域 Google 的服務(wù)用戶基數(shù)大,不得不采用 DNS 級(jí)別的分布式,使用到的 IP 地址太多,而且變動(dòng)大 讓用戶綁定 A 記錄的話不利于負(fù)載均衡,維護(hù)起來(lái)也是幾乎不可能完成的任務(wù) 同理,大部分 CDN 也不支持裸域
裸域的 cookie 的作用范圍太大 假如知乎也采用裸域,那么知乎所有 cookie 的作用范圍就包括 http://zhihu.com 下的所有子域名 也就是說(shuō)訪問(wèn) http://foo.zhihu.com 和 http://bar.zhihu.com 的時(shí)候都會(huì)帶上 http://zhihu.com 裸域頁(yè)面設(shè)置的 cookie 從安全、隱私、可擴(kuò)展性、以及管理的角度而言,這對(duì)很多大型網(wǎng)站來(lái)說(shuō)是不可接受的
URL 的正則匹配,如果帶 www 前綴的并且以 .com/.net/.org 結(jié)尾的,通常成功的機(jī)會(huì)要大很多 這個(gè)你會(huì)在許多文本編輯器里面遇到 如果 URL 不是 www 開頭,并且也不是三大頂級(jí)域名結(jié)尾的,匹配成功的概率就要小很多 這是使用過(guò)程中有時(shí)候會(huì)讓人很抓狂的點(diǎn),重不重要全看你的用途和場(chǎng)合了
2、去掉www是否會(huì)影響網(wǎng)站的SEO(主要是排名和收錄)?(前提是過(guò)去有加www)
早先裸域剛開始流行的時(shí)候確實(shí)有傳聞?wù)f不利于 SEO,但現(xiàn)在看來(lái)似乎并無(wú)任何問(wèn)題 如果有的話也是搜索引擎的 bug,給他們提一下他們應(yīng)該會(huì)很樂意去改 Google 的站長(zhǎng)工具里面有工具可以幫助你做 URL 遷移的,可以有效的解決這個(gè)問(wèn)題,再配合下一部分的跳轉(zhuǎn),不用擔(dān)心對(duì) SEO 有任何負(fù)面影響
3、用什么方式去跳轉(zhuǎn)好?(如301)
不管你決定使用還是不使用裸域,好不要在同時(shí)保留 www 前綴和裸域的 URL,這樣既不方便用戶的瀏覽器區(qū)分訪問(wèn)歷史,也會(huì)對(duì)你做訪問(wèn)統(tǒng)計(jì)帶來(lái)不少麻煩 的方式是采用 301 跳轉(zhuǎn),并且跳轉(zhuǎn)的時(shí)候保留 URL 里域名后的全部?jī)?nèi)容 比如,如果你決定使用裸域 http://example.com,那么請(qǐng)務(wù)必將
http://www.example.com/foo/bar?spam=egg
301 跳轉(zhuǎn)到
http://example.com/foo/bar?spam=egg
去 或者反過(guò)來(lái),如果你決定不使用裸域,那么請(qǐng)務(wù)必將
http://example.com/foo/bar?spam=egg
301 跳轉(zhuǎn)到
http://www.example.com/foo/bar?spam=egg
這樣的跳轉(zhuǎn)需要在 web 服務(wù)器里單獨(dú)配置,很多 DNS 管理界面提供的簡(jiǎn)單的跳轉(zhuǎn)到新域名的根目錄無(wú)法實(shí)現(xiàn)這樣的功能(僅僅跳到 http://example.com/ ),對(duì)用戶體驗(yàn)和搜索引擎 SEO 而言都是非常糟糕的
下面給出如何在 nginx 里面實(shí)現(xiàn)上述的跳轉(zhuǎn)
- # redirect http(s)://www.example.com to http(s)://example.com
- server {
- server_name www.example.com;
- return 301 $scheme://example.com$request_uri;
- }
- # redirect http(s)://example.com to http(s)://www.example.com
- server {
- server_name example.com;
- return 301 $scheme://www.$host$request_uri;