首页 > 解决方案 > 如何为子域提供 Express/node API?

问题描述

我有一个小型 Express 应用程序在我的 Web 服务器上的端口 35000 上提供服务,可以使用以下 .htaccess 代码从 mywebsite.com/api 访问它(完美运行,只需将“hello world”发送到浏览器)。

RewriteEngine On
RewriteRule ^api/(.*) http://127.0.0.1:35000/$1 [P]

我在 api.mywebsite.com 上设置了一个子域,链接到我服务器上的一个单独目录,如果我把 web 文件放在这里,我可以在 URL 上看到它们,所以工作正常。我想将我的 API 移动到 api.mywebsite.com,因此我在子域的目录中创建了以下 .htaccess 文件。

RewriteEngine On
RewriteRule ^(.*) http://127.0.0.1:35000/$1 [P]

但是导航到 api.mywebsite.com 从 Express 中返回“未找到”错误,日志为404 index.php. 为什么需要 index.php 文件?我很高兴至少得到错误,因为这意味着 Express 正在通过子域进行通信,但它没有给我我的“hello world”消息。

我从其他问题中查看了 Express vhost,但我很难理解这是否适用于此,或者我是否缺少简单的 .htaccess 规则。任何帮助都会非常感谢。

标签: node.jsapi.htaccessexpresssubdomain

解决方案


只是为了跟进,这解决了我的问题:htaccess proxy to node app

我的子域目录中的 .htaccess 文件现在是:

DirectoryIndex disabled
RewriteEngine On
RewriteRule ^(.*)$ http://127.0.0.1:35000/$1 [P,L]
RewriteRule ^$ http://127.0.0.1:35000/ [P,L] 

推荐阅读