建過網(wǎng)站的朋友都知道,每個(gè)網(wǎng)站都是需要通過至少一個(gè)域名(通過是頂級域名)來訪問的。網(wǎng)上很多文章都有介紹到一個(gè)問題,那就是關(guān)于帶www域名和不帶www域名的權(quán)重問題,若不做301重定向,可能會(huì)造成權(quán)重分散,從而使網(wǎng)站競爭力下降。且不討論這個(gè)觀點(diǎn)的正確性,就技術(shù)角度而言,如何將不帶www的域名做301重定向到帶www的域名上呢?有以下幾個(gè)解決方案。
方案一:通過偽靜態(tài)組件實(shí)現(xiàn)301重定向
常見的偽靜態(tài)組件有好幾種,比如Linux Apache下的.htaccess,Windows系統(tǒng)下的httpd.ini或web.config。不論哪一種,都可以實(shí)現(xiàn)301重定向。以.htaccess為例,這是一個(gè)文件,這個(gè)文件一般存放于網(wǎng)站的根目錄。一旦訪問這個(gè)網(wǎng)站,服務(wù)器就會(huì)先執(zhí)行這個(gè).htacccess文件,這個(gè)文件里可以寫各種偽靜態(tài)的代碼,而301重定向就是其中之一。以下是.htaccess的301重定向?qū)懛ǎ?/p>
RewriteCond %{http_host} ^news.jyspkj.cn$ [NC]
RewriteRule ^(.*)$ http://www.news.jyspkj.cn$1 [R=301,L]
簡簡單單2行代碼就能解決問題,第1行代碼是不帶www的域名,第2行是帶www的域名。上面代碼中的意思是將news.jyspkj.cn永久重定向到www.news.jyspkj.cn。其效果就是當(dāng)訪問news.jyspkj.cn時(shí)會(huì)直接跳轉(zhuǎn)到www.news.jyspkj.cn。
方案二:通過虛擬主機(jī)配置實(shí)現(xiàn)301重定向
現(xiàn)在很多虛擬主機(jī)都可以在控制面板里設(shè)置301重定向(并非所有虛擬主機(jī)產(chǎn)品都支持),如果你的正好支持,那么設(shè)置就更加簡單了。以阿里云虛擬主機(jī)為例,通過下面的步驟就可以輕松設(shè)置301重定向了。
301重定向不僅適用于頂級域名,也適用于網(wǎng)站中的子頁面,它的作用非常大,比如在網(wǎng)站改版升級時(shí),使用301永久重定向?qū)⑴f的頁面過渡到新頁面,可以大大減少因改版造成的權(quán)重流失。