2016-11-19 5 views
1

Новое в nginx и все еще пытается выяснить его методы.Nginx перенаправление на основе регулярных выражений регулярных ссылок

Я пытаюсь сделать перенаправление на внешний URL на основе ссылочного 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

Смежные вопросы