2016-02-04 5 views
1

Я хочу переписать и прокси все адреса, как ...Как прокси и переписать URL, как/приложение/(шаблона)/(на самом деле путь для перезаписи)

http://foo.com/app/groupA/index.html 
http://foo.com/app/groupB/index.html 

в

http://foo.com:8080/index.html 

Обратите внимание, что URL-адреса groupA и groupB переписываются в одно и то же место.

Я пробовал много вещей, это, я думаю, скорее всего сработает, потому что оно соответствует всем после третьего появления /.

location /app { 
    rewrite (?:.*?\/){3}(.*) /$1 break; 
    index index.html index.htm; 
    proxy_pass http://localhost:8080; 
    proxy_redirect off; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Ssl on; 
    proxy_buffering off; # buffering would break CouchDB's _changes feed 
    proxy_read_timeout 600s; 
    proxy_send_timeout 600s; 
    proxy_connect_timeout 75s; 
} 

Еще на порту 8080 Я не видящие другие запросы приходят. Обратите внимание, я вижу запросы, когда я пишу ...

location ^~ /app { 
    rewrite /app/(.*) /$1 break; 
    index index.html index.htm; 
    proxy_pass http://localhost:8080; 
    proxy_redirect off; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Ssl on; 
    proxy_buffering off; # buffering would break CouchDB's _changes feed 
    proxy_read_timeout 600s; 
    proxy_send_timeout 600s; 
    proxy_connect_timeout 75s; 
    } 

Запросы приходят в порт 8080, как .. .

/groupA/index.html 
/groupB/index.html 

Мне нужно выяснить, как избавиться от этой/groupA/и/groupB/части URL. Заметьте, я действительно не знаю, какая строка будет между этими слэшами, где находится группа. Это может быть/funnybunny/для всего, что я знаю: P.

+0

Nvm, я вижу, запросы поступают в порт 8080 в первом примере, по-прежнему та же проблема, хотя, что они содержат '/ GroupA/index.html'. –

ответ

1

Если регулярное выражение содержит символы скобок {}, выражение должно быть заключено в кавычки.

Try:

rewrite "(?:.*?\/){3}(.*)" /$1 break; 
+0

Это трюк сэр. Спасибо большое! –