在一台虚拟主机上部署了一套java应用,通过cpanel创建了一个example.xwws.com站点。
访问example.xwws.com时能正常访问页面,但是页面上的接口都调用不了,都是404。
这台主机没有root权限,找不到httpd.conf文件。
希望通过.htaccess 文件实现路径中带有api时访问指定端口的服务
类型与nginx这种:
location /api/ {
proxy_pass http://localhost:8385;
}
我尝试过几个配置都不行
#反向代理
ProxyPass /api http://127.0.0.1:8385/
ProxyPassReverse /api http://127.0.0.1:8385/
<proxy /api>
AllowOverride None
Order Deny,Allow
Allow from all
</proxy>
------------------------------------------------------------------
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule api/ http://127.0.0.1:8385/ [P]
</IfModule>
------------------------------------------------------------------
RewriteEngine On
RewriteRule ^/?api/(.*)$ example.xwws.com/api/ [L,P]
ProxyPassReverse /api http://127.0.0.1:8385/api/
------------------------------------------------------------------
RewriteEngine On
RewriteCond %{HTTP_HOST} example.xwws.com$
RewriteRule ^api/(.*)$ http://127.0.0.1:8385/api/$1 [R=302,NC ]
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。
已经解决了
在.htaccess中,需要使用mod_rewrite,以便通过mod_proxy发送请求。以下是发布的Nginx配置的等效项:
RewriteEngine On
RewriteRule ^api/ http://localhost:8385%{REQUEST_URI} [P]
需要访问服务器配置,以确保安装了mod_proxy(以及相关模块)。
在主服务器配置中执行此操作。例如:
ProxyPass /api/ http://localhost:8385/api/
ProxyPassReverse /api/ http://localhost:8385/api/
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!