2016-11-19 80 views
1

nginx新手,仍然試圖找出它的方法。Nginx基於引用URL正則表達式的重定向

我正在嘗試根據引薦網址重定向到外部網址。例如,在下面我有託管域代碼,如果引用URL來自Facebook的,我想將用戶重定向到一個特定的URL:

location/{ 
index index.php; 
    if ($http_referer ~* ^(.*?(\bfacebook\b)[^$]*)$) { 
      rewrite http://www.othersite.com break; 
    } 
try_files $uri $uri/ @handler; 
expires 30d; 
} 

Nginx的不拋出任何錯誤,一旦它重新啓動,但儘管從Facebook鏈接進行測試,但未執行。

任何能指向正確方向的nginx /正則表達式大師?

在此先感謝。

回答

1

雖然它可能通過語法測試,但您的rewrite語句不正確。對於任何URI重定向到一個新的URL可以使用:

rewrite^http://www.example.com/? permanent; 

但首選的解決方案將是更有效的:

return 301 http://www.example.com/; 

兩個指令的詳細信息,請參閱this page

+0

解決了!謝謝! – LeoXela