2014-01-27 27 views
1

我用簡單的重寫我的應用程序的端口上運行的Apache服務器後面的express.js應用:如何在Apache後面運行快速應用程序時強制使用SSL?

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

可正常工作。

由於該應用程序預計將很快上線,我試圖通過RewriteRule s添加強制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

您在[R=301, L]之前有一個空格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

+0

感謝您的回答,但這是創建一個循環重定向。 – m90

+0

根據這些規則,不存在循環重定向(因爲兩者都實施'https://'),但是如果在'node.js'中有一些重定向到'http://',那麼需要查看。 – anubhava

+0

我沒有在我的快車應用程序中提及任何協議,當我明確輸入我的URL的「https」版本時,它也可以正常工作,所以我猜我的應用程序不會以任何方式重定向。 – m90

相關問題