在Apache后面运行快速应用程序时如何强制SSL?

时间:2014-01-27 18:03:53

标签: node.js apache .htaccess ssl express

我正在Apache服务器后面运行一个express.js应用程序,只需简单地重写到我的应用程序端口:

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

这可以按预期工作。

由于应用程序预计很快就会上线,我也试图通过RewriteRule添加强制SSL连接。我在节前(即PHP)时代的做法是这样的:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} != on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301, L]
RewriteRule ^(.*) http://localhost:61987/$1 [P]

然而,结合路由到我的快递应用程序,这给了我500内部服务器错误。

处理此设置的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

L中的[R=301, L]之前有空格。

试试这段代码:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^ http://localhost:61987%{REQUEST_URI} [P]

假设node.js上的61987服务器也支持https