【发布时间】:2020-02-07 05:59:26
【问题描述】:
我似乎终于找到了一个 .htaccess 代码 sn-p,它可以在共享主机的非 :80 端口上运行 Node JS 服务器。
来自https://medium.com/@mayomi1/how-to-host-a-node-js-app-on-shared-host-52e12a62a259
#Open Port
RewriteRule ^$ http://127.0.0.1:XXXX/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:XXXX/$1 [P,L]
似乎工作正常,除了它重新路由所有流量,端口:80 包括到节点服务器:XXXX
我的 .htaccess 中有一些额外的行,一个用于将 http 转换为 https,另一个用于处理不存在的路径(转到 /specificsubfolder/,将路径的不存在部分作为哈希传递)
RewriteEngine On
RewriteBase /specificsubfolder/
#http to https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
#redirect non-existant path
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ \#$1 [L,R=301,NE]
我希望做什么(我对 .htaccess 的掌握非常有限):
端口 :80 上的流量 -- 忽略 Node JS 服务器,并进行重新路由/哈希处理
端口 :XXXX 上的流量 -- 忽略上面的端口 80 重新路由。通过节点服务器处理。
【问题讨论】:
-
您的 .htaccess 仅适用于在端口 80 或 443 上发送的请求,因为这是 Apache 正在侦听的地方。如果你的 Node 服务器监听端口 XXXX,并且你直接向端口 XXXX 发出请求 - 那么你还需要重写或代理什么?
-
我试图解决的问题:这是一个共享主机环境,您无法打开任何端口。 Node 服务器可能正在侦听,但端口未打开。目标是使用 .htaccess 来撬开该端口。到目前为止,我已经取得了一些成功(不是上面的代码——只是在测试 .htaccess 打开端口的能力)。不幸的是,我对 .htaccess 的理解仍然非常有限,我几乎不明白每一行的含义。
标签: node.js .htaccess shared-hosting