nginx的新手,仍然试图弄清楚它的方法。
我尝试根据引荐网址重定向到外部网址。例如,在我对托管域的下面的代码中,如果引用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 /正则表达专家吗?
提前致谢。
答案 0 :(得分:1)
虽然它可能会通过语法测试,但您的rewrite
语句不正确。要将任何URI重定向到新URL,您可以使用:
rewrite ^ http://www.example.com/? permanent;
但首选的解决方案是效率更高:
return 301 http://www.example.com/;
有关这两个指令的详细信息,请参阅this page。