Nginx下301重定向域名的方法小結
2024-08-30 12:27:21
供稿:網友
linux中nginx 301重定向跳轉方法總結,有需要的朋友可參考一下。
第一種情況:訪問aaaaaaa站定向到bbbbbbbbbbb站
代碼如下:
server {
server_naaaaaaame www.aaaaaaa.com ;
rewrite ^(.*) http://www.bbbbbbbbbbb.com$1 permaaaaaaanent;
}
第二種情況:不是訪問aaaaaaa站的全部重定向到指定頁面
代碼如下:
server {
server_naaaaaaame www.aaaaaaa.com;
if ($host != ‘aaaaaaa.com' )
{ rewrite ^/(.*)$ http://www.bbbbbbbbbbb.com/$1 permaaaaaaanent; }}
如果寫在第一個server段 使用IP訪問時也將被重定向
第三種帶WWW或者不帶WWW之間的跳轉
代碼如下:
server
{
server_naaaaaaame c.net
rewrite ^/(.*)$ http://www.c.net/$1 permaaaaaaanent;
}
下面是nginx的規則跳轉:
首先一、得在你的域名管理里面定義 c.com和www.c.com指向你的主機ip地址,我們可以使用nslookup命令測試:直接輸入 nslookup c.com和nslookup www.c.com 都有指向ip的A記錄即可。
第二、我們才能在nginx里面配置rewrite規則。打開 nginx.conf文件
找到你的server配置段:【以下是我的server配置段】
代碼如下:server
{
listen 80;
server_name www.c.com c.com;
if ($host != ‘www.c.com' ) {
rewrite ^/(.*)$ http://www.c.com/$1 permanent;
}
這樣就是用戶直接訪問c.com直接跳轉的www.c.com。即讓不帶www的域名跳轉到帶www的域名。
三、我們可以是多個二級域名、三級域名都可以隨意跳轉、或者讓它們都跳轉到blog.c.com這個域名
同意添加如下語句即可:
代碼如下:server
{
listen 80;
server_name blog.c.com wgkgood.gicp.net;
if ($host = ‘wgkgood.gicp.net' ) {
rewrite ^/(.*)$ http://blog.c.com/$1 permanent;
}
為何要使用301重定向
在網站建設中需要網頁重定向的情況很多:如網頁目錄結構變動,網頁重命名、網頁的擴展名改變、網站域名改變等。如果不做重定向,用戶的收藏和搜索引擎數據庫中的舊地址只能讓訪客得到一個404錯誤信息頁面,訪問流量白白喪失。不僅如此,之前該頁面的一切積累(比如PR值)就都白費了。
301重定向不僅能使頁面實現自動跳轉,對于搜索引擎來說,也可能可以傳遞PR值。
--------------------------------------------------------------------------------
nginx重定向規則詳細介紹
rewrite命令
nginx的rewrite相當于apache的rewriterule(大多數情況下可以把原有apache的rewrite規則加上引號就可以直接使用),它可以用在server,location 和IF條件判斷塊中,命令格式如下:
rewrite 正則表達式 替換目標 flag標記
flag標記可以用以下幾種格式:
last – 基本上都用這個Flag。
break – 中止Rewirte,不在繼續匹配
redirect – 返回臨時重定向的HTTP狀態302