如何使用.htaccess实现域名无端口访问及路径含API时转发到指定端口
.htaccess 反向代理配置实现方案
前置依赖确认
首先需要确认Apache服务已开启以下模块:
- mod_rewrite
- mod_proxy
- mod_proxy_http
同时需在对应站点的Apache虚拟主机配置中,将AllowOverride参数设置为All,否则.htaccess规则不会生效。
配置代码
将以下内容写入站点根目录的.htaccess文件即可:
RewriteEngine On # 匹配/api/开头的请求转发到8385端口服务 RewriteRule ^api/(.*)$ http://localhost:8385/$1 [P,L]
规则说明
- 标识
[P]代表启用反向代理模式,[L]代表匹配到当前规则后停止执行后续重写规则,避免规则冲突 - 如果你需要和给出的Nginx配置默认行为完全一致(转发时保留
/api前缀),可以将规则修改为RewriteRule ^api/(.*)$ http://localhost:8385/api/$1 [P,L],可根据实际业务需求选择对应写法 - 「域名无需携带端口即可访问服务」的需求只要满足Apache本身监听默认的80(HTTP)/443(HTTPS)端口,域名解析到服务器IP后,直接通过域名访问就会自动走默认端口,不需要额外携带端口号。如果你的根路径服务也运行在其他自定义端口,可以在上述规则后新增根路径的反向代理规则即可,注意/api的规则需要放在更靠前的位置优先匹配。
内容的提问来源于stack exchange,提问作者leo.luo
相关产品推荐
相关产品推荐

