2016-07-22 2 views
0

например, я хочу перенаправить с https://www.example.com/ $ {pid} .txt to http://www.anotherExample.com/api?pid= $ {pid} как настроить его в nginx? Заранее спасибо :)Как перенаправить URL-адрес с параметрами в nginx

+0

см. это http://lethain.com/rewriting-parameterized-urls-with-nginx/ –

+0

Возможный дубликат [Как перенаправить URL-адрес в NGINX] (http://stackoverflow.com/questions/10294481/how-to-redirect-a-url-in-nginx) –

ответ

0

Попробуйте это:

server { 

    listen 443; 
    server_name www.example.com; 

    location ~* ^/(.+)\.txt$ { 
    return 301 http://www.anotherexample.com/api?pid=$1; 
    } 

} 

Если pid имеют определенный формат (только цифры, например), а затем заменить (.+) с соответствующим рисунком.

Если вы хотите отобразить содержимое без перенаправления, замените return 301 на proxy_pass.

+0

Я использую местоположение ~ ^/([^ /.] *). txt $ { return 301 http://www.anotherexample.com/api?pid = $ 1; }, но он говорит 502 ошибки и не может найти ничего полезного в error.log, любой идеи? –

+0

@NingLv проверено - regexp отлично работает в моей среде. Вы добавили https params? Попробуйте сначала на 'http: //' с 'listen 80;'. – oakymax

+0

@NingLv также вы можете попробовать выполнить обратную косую черту: '\ /' вместо '/'. Это зависит от версии nginx – oakymax

0

лучший способ с return 301, он перенаправляет запрос на сайт, на который вы устанавливаете, возможно, будет лучше сделать return 301 $scheme://www.anotherexample.com/api?pid=$1;, таким образом ваш URL-адрес будет перенаправлен как HTTPS при покупке и установке SSL

+0

Я использую местоположение ~ ^/([^ /.] *). Txt $ { return 301 http://www.anotherexample.com/api?pid=$1; }, но он говорит 502 ошибки и не может найти ничего полезного в error.log, любой идеи? –

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