mod_rewrite и mod_proxy вместе в конфигурации Apache - PullRequest
0 голосов
/ 27 мая 2019

Я использую сервер Apache для размещения моего приложения Angular.Поэтому я включил поддержку одностраничных приложений со следующей конфигурацией

<Location / >
   RewriteEngine on#
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule . /index.html [L]
</Location>

Также у меня есть бэкэнд.Я использую mod_proxy для прокси его с Apache.

ProxyPass "/api" "http://127.0.0.1:8081/api"
ProxyPassReverse "/api" "http://127.0.0.1:8081/api"

Но когда я использую обе эти конфигурации, я не могу вызвать какие-либо API.Все вызовы возвращают index.html.

Могу ли я узнать, что не так и как это исправить?

1 Ответ

0 голосов
/ 27 мая 2019

Спасибо @Dusan Bajic за комментарий.
Теперь у меня есть следующий конфиг, и он работает.

ProxyPass "/api" "http://127.0.0.1:8081/api"
ProxyPassReverse "/api" "http://127.0.0.1:8081/api"

<Location / >
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/api
    RewriteCond %{REQUEST_URI} !\.(?:css|js|map|jpe?g|gif|png)$ [NC]
    RewriteRule . /index.html [L]
</Location>
...