我正在使用始终运行Apache Web服务器的共享托管服务,因此我无法直接在端口80上运行我的Node.js应用程序。相反,正如我的主机告诉我的,我需要使用.htaccess
将传入的请求重定向到我的Node.js应用程序,该应用程序当前正在端口50000上运行。这是他们告诉我使用的.htaccess
文件:
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:50000 [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:50000/$1 [P,L]
这种方法效果很好,只有当我尝试转到mydomain.com
时,Node应用程序才会看到/index.php
的请求。对我的主人的技术支持似乎和我一样困惑。如果我转到mydomain.com/test
,那么Node.js应用会看到/test
,因此Apache似乎只在根URL上添加index.php
。在设置.htaccess
文件和Node.js应用程序之前访问该URL的某人是否会出现Apache缓存问题?
更新
此时,似乎没有人知道发生了什么,所以我只想在我的Node应用程序中添加一个'index.php'路由。感谢所有看过并试图提供帮助的人。
答案 0 :(得分:1)
您可能在DirectoryIndex
文件中为index.php
设置了apache conf
,这可能是您自动获得index.php
的原因,您可以做的是设置{{ 1}}对于某些可能不存在的文件名或者如果是apache 2.4,请在DirectoryIndex
中使用DirectoryIndex disabled
。
答案 1 :(得分:1)
这实际上是您要放在 /public_html 目录中的内容
在下面代码的 .htaccess 文件中你会看到
http://127.0.0.1:50000
(50000) 也是您发送它的端口。您可以在 2 个地方进行更新。
同时更新example.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
DirectoryIndex disabled
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:50000 / [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:50000 /$1 [P,L]
这是一个带有 nodejs 的 apache 服务器的特定配置。