2013-12-13 3 views
2

Я пытаюсь настроить Nginx с proxy_pass при посещении уникального URL:Nginx удаление второго слэша в блоке местоположения

location ~ /proxy/(?<var>.+) { 
    proxy_pass $var; 
} 

Когда я посещаю http://example.com/proxy/http://google.com я получаю Внутреннюю ошибку сервера 500, и журнал ошибок имеет под запись:

недопустимый URL префикс "HTTP: /google.com", клиент: 2.33.214.165, сервер: example.com, запрос: "GET/прокси/http://google.com HTTP/1.1", хозяин: "example.com"

Есть ли причина, по которой nginx не включает в себя второй / в URL-адресе?

ответ

3

попробовать это: merge_slashes хотя контекст широка сервер, так что, если вам все еще нужно объединить слеши в другом месте вы должны улучшить ваше регулярное выражение в месте расщепления целевой прокси в схему и хост + URI. что-то вроде этого: ^/proxy/(?<schema>.+)://(?<rest>), а затем proxy_pass $schema://$rest может работать.

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