mod_rewrite 和 mod_proxy 在 Apache 配置中一起使用
mod_rewrite and mod_proxy together in Apache configuration
我正在使用 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。
所有通话 return index.html.
我可以知道哪里出了问题以及如何解决吗?
感谢@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>
我正在使用 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。 所有通话 return index.html.
我可以知道哪里出了问题以及如何解决吗?
感谢@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>