301重定向不陌生, 有時(shí)候有需求把某目錄整個(gè)重定向到一個(gè)二級(jí)域名,或者不帶www的頂級(jí)域名請(qǐng)求全部重定向到帶www的二級(jí)域名.如果是Apache,需要配置.htaccess,nginx不支持,需要在配置文件里面使用rewrite指令來(lái)實(shí)現(xiàn)。
頂級(jí)域名重定向到www
server {
server_name zzvips.com;
rewrite ^/(.*)$ //m.ythuaji.com.cn/$1 permanent;
}
如上配置,所以zzvips.com的請(qǐng)求都會(huì)重定向到m.ythuaji.com.cn,301重定向?qū)EO很有幫助.這個(gè)配置大家用的最多。
www二級(jí)域名重定向到頂級(jí)域名
server {
server_name m.ythuaji.com.cn;
rewrite ^/(.*)$ http://domain.com/$1 permanent;
}
江湖盛傳頂級(jí)域名的權(quán)重會(huì)比www二級(jí)域名的權(quán)重高,有些seoer會(huì)要求運(yùn)維一定要把www的請(qǐng)求轉(zhuǎn)到頂級(jí)域名,和上面的做法相反。
目錄重定向
if ( $request_filename ~ nginxjiaocheng/ ) {
rewrite ^ //m.ythuaji.com.cn/nginx/? permanent;
}
目錄跳轉(zhuǎn)新域名
if ( $request_filename ~ nginx/ ) {
rewrite ^ http://nginx.zzvips.com/? permanent;
}
nginx這個(gè)欄目太火了,打算專門弄一個(gè)域名。
附:域名之間的301跳轉(zhuǎn)和測(cè)試方法
一、相同根域名與子域名之間的跳轉(zhuǎn)
第一種情況:訪問(wèn)根域名重定向到www子域名 (Vhost 通常綁定了多個(gè)域名,這樣做可以精確定位到某個(gè)域名,不會(huì)造成非本域名跳轉(zhuǎn)到本域名的情況)
server {
server_name m.ythuaji.com.cn zzvips.com;
if ($host = 'zzvips.com' ) {
rewrite ^/(.*)$ //m.ythuaji.com.cn/$1 permanent;
}
二、不同域名間的301跳轉(zhuǎn)
第一種情況:訪問(wèn)A站定向到B站
server_name m.ythuaji.com.cn;
rewrite ^(.*) //m.ythuaji.com.cn$1 permanent;
}
第二種情況:不是訪問(wèn)A站的全部重定向到指定頁(yè)面
server_name m.ythuaji.com.cn;
if ($host != 'zzvips.com') {
rewrite ^/(.*)$ //m.ythuaji.com.cn/$1 permanent;
}
}
如果寫在第一個(gè)server段
使用IP訪問(wèn)時(shí)也將被重定向
301重定向狀態(tài)在線檢測(cè)工具:http://web-sniffer.net/
返回了這句才算是301重定向成功: