2016-02-19 2 views
1

Я использую nginx в качестве обратного прокси. Как настроить перенаправление URL-адресов в серверном блоке nginx, чтобы URL-адрес для перенаправления был не-http-адресом?URL перенаправление на URL-адрес, отличный от http, в nginx

Например, у меня есть URL типа:

http://example.com/user_uuid/a0d525aa-d755-11e5-b5d2-0a1d41d68578/14084561234/

Я хочу, чтобы перенаправить из выше не-HTTP URL:

sms:14084561234?body:my photo is located at http://example.com/photos/a0d525aa-d755-11e5-b5d2-0a1d41d68578/

Когда это не -http url попадает в браузер, открывается собственное SMS-приложение устройства, предварительно заполняя SMS с номером телефона 1-408-456-1234 и тело с текстом, появляющимся после ?body в URL-адресе, отличном от http-адреса. Естественно, это применимо только к мобильным устройствам.

Возможно ли это? Если да, можете ли вы привести мне пример? Обратите внимание, что в первом URL-адресе uuid и номер сгенерированы динамически, основываясь на некоторых предыдущих вводах.


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

ответ

0

Следующая конфигурация работает:

server { 
    listen 99; 
    server_name test.so; 

    location /user_uuid { 
     rewrite /user_uuid/(.+)/([^/]+) "sms:$2?body:my photo is located at http://example.com/$1/" redirect; 
    } 

} 

Пример вывода:

curl -I -H "Host: test.so" http://localhost:99/user_uuid/uuid/phone/ 

HTTP/1.1 302 Moved Temporarily 
Server: nginx/1.7.11 
Date: Sat, 20 Feb 2016 00:45:22 GMT 
Content-Type: text/html 
Content-Length: 185 
Connection: keep-alive 
Location: sms:phone?body:my photo is located at http://example.com/uuid/ 
+0

Спасибо за ответ. Я проверю его и вернусь к вам. –

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