У нас есть приложение PHP, которое предоставляет различные API под многими корневыми путями:
/api/calls/*
/services/*
/file/uploads/*
и т. Д.
Эти корневые ветки сталкивались с патчами других приложений, запущенных в том же проекте Openshift. поэтому был запущен контейнер nginx, который был продан в качестве обратного прокси-сервера со следующей конфигурацией:
server {
localhost /phpapp/api/calls/ {
proxy_pass http://phpapp.ourproject.svc:80/api/public/;
}
}
Я обнаружил, что полностью излишне запускать другой веб-сервер только для перезаписи патчей, Apache должен иметь возможностьразберись сам, так я и думал. Однако я не нашел ни одного учебника, как это сделать на Apache, вместо множества примеров, ни один из них не сработал.
Я пробовал: в 000-default.conf в:
из Можно ли использовать относительный путь в ProxyPass / ProxyPassReverse? :
RewriteRule ^/phpapp/api/calls /api/calls [L]
То же внутри phpapp / .htaccess:
RewriteRule ^api/calls /api/calls [L]
Тогда,оба правила с [N, PT].
Затем:
RewriteRule ^/phpapp/api/calls/(.*)$ /api/calls/$1 [L]
И то же самое с [N, PT]:
RewriteRule ^/phpapp/api/calls/(.*)$ /api/calls/$1 [P,NT]
Что бы я ни пытался, яget 'Path not found' error.
Как добиться того базового переписывания обратного прокси, которое было так легко сделать с помощью внешнего nginx, внутри apache?