2014-01-23 4 views
3

У меня есть бродячий VM работает Nginx на порт 80. Мой хозяин машины вперед порт 8080 к порту бродячего ВМ 80.Nginx 301 капель порт препровождаемую бродячего

мне нужно переписать URL с 301 редирект, который работает, но порт, который я использую для доступа к nginx через туннель (8080), отбрасывается, и перенаправление терпит неудачу.

http://server.com:8080/blog/two 

-becomes-

http://server.com/blog.php?article=two 

- это должно быть -

http://server.com:8080/blog.php?article=two 

пример:

rewrite ^/blog/(.*)$ /blog.php?article=$1 last; 

Спасибо!

+0

переписан ^/блог /(.*)$ Http:? //$http_host/blog.php статьи = $ 1 в прошлом; [Что разница хоста и HTTP_HOST в Nginx] [1] [1]: http://stackoverflow.com/questions/15414810/whats-the-difference-of-host-and-http-host -in-nginx – user3228313

+0

, если вы не хотите порт '8080', то почему nginx слушает порт' 8080', а не '80', или я понимаю это неправильно –

ответ

0

Extract оригинальный номер порта из поля в Host заголовка:

set $port ''; 

if ($http_host ~ :(\d+)$) { 
    set $port :$1; 
} 

rewrite ^/blog/(.*)$ http://example.com$port/blog.php?article=$1; 
Смежные вопросы