没有ssl的nodejs代理服务器背后的php

没有ssl的nodejs代理服务器背后的php,php,node.js,apache,https,http-proxy,Php,Node.js,Apache,Https,Http Proxy,我有一个NodeJS应用程序,它使用端口443在“https”上运行。如果URL路径以“/blog”开头,则此应用程序将充当反向代理服务器。URL以“/blog”开头的所有请求都被转发到apache,而不使用SSL连接。但是浏览器使用SSL连接与NodeJ连接。当apache使用“http://”URL方案接收请求时,PHP的$\u服务器['https']未设置为“开”。这将导致所有静态资源(如CSS)的URL,javascript文件以“http://”开头 因此,浏览器给出的错误是页面是通过

我有一个NodeJS应用程序,它使用端口443在“https”上运行。如果URL路径以“/blog”开头,则此应用程序将充当反向代理服务器。URL以“/blog”开头的所有请求都被转发到apache,而不使用SSL连接。但是浏览器使用SSL连接与NodeJ连接。当apache使用“http://”URL方案接收请求时,PHP的
$\u服务器['https']
未设置为“开”。这将导致所有静态资源(如CSS)的URL,javascript文件以“http://”开头

因此,浏览器给出的错误是页面是通过“https”加载的。但是从“http://”请求资源。这将导致所有CSS和javascript文件被阻塞


现在,我正在寻找一种方法,以某种方式愚弄PHP,使其认为请求来自“https”,而不是“http”。我知道我可以编辑代码并将
$\u服务器['https']='on'在每个脚本的开头。但这似乎不是解决问题的优雅方式。我想知道每个目录下的任何解决方案。就像“htaccess”文件一样。

确保反向代理服务器设置了X转发头。然后在apache文档根目录中创建一个.htaccess文件,并将以下代码放入其中

SetEnvIf X-Forwarded-Proto https HTTPS

这将仅适用于放置此文件的目录。因此,您可以将该文件放在希望将url方案设置为“https”的位置,而不是将其放在文档根目录中

为什么要投否决票?至少给我一个理由。