Я пишу прототипы веб-сайта, которые используют данные из сервера, которым я не управляю, ответ находится в JSON, и сервер не поддерживает JSONP, таким образом у меня есть проблемы с CORS, поскольку я разрабатываю в клиенте только.
Мне удалось обойти это путем выполнения локального апачского веб-сервера HTTP со следующими правилами ProxyPass в моем vhosts.conf
ProxyPass /api/de/ http://de.test.com/api/
ProxyPassReverse /api/de/ http://de.test.com/api/
ProxyPass /api/jp/ http://jp.test.com/api/
ProxyPassReverse /api/jp/ http://jp.test.com/api/
ProxyPass /api/ru/ http://ru.test.com/api/
ProxyPassReverse /api/ru/ http://ru.test.com/api/
ProxyPass /api/uk/ http://uk.test.com/api/
ProxyPassReverse /api/uk/ http://uk.test.com/api/
Поскольку Вы видите, что существует несколько субдоменов для того же домена, каждый для доступа к различной локали, в реальном выражении это означает, что я получаю данные на другом языке, который важен для моих прототипов.
Существует больше чем 30 языков, которые я хотел бы способность протестировать в моих прототипах, и я хочу знать, существует ли способ записать, что мой ProxyPass управляет динамично (или лучшее решение).
Я использую jQuery с getJSON методом и примером URL, который я поражаю, следующие
url = '/api/'+pos+'/data.html?destination=...
Где на месте продажи просто строка, я прохожу с 'de', 'мировым судьей', 'рутением' или 'Великобританией'
Вы можете добиться этого с помощью mod_rewrite
RewriteEngine On
RewriteRule /api/([a-z]+)/(.*) http://$1.test.com/api/$2 [P]
[P] на mod_rewrite заставляет его действовать как mod_proxy (из документа apache http://httpd.apache.org/docs/2.2 /rewrite/flags.html#flag_p):
Использование флага [P] приводит к тому, что запрос обрабатывается mod_proxy, и обрабатывается через прокси-запрос. Например, если вы хотите, чтобы все изображения запросы, которые будут обрабатываться внутренним сервером изображений, вы можете сделать примерно следующее:
RewriteRule /(.*).(jpg|gif|png) http://images.example.com/ $ 1. $ 2 [P]