2
我正在嘗試將所有API和Web HTTP請求重定向到Swift Perfect中的HTTPS。我已將代碼部署到AWS中。當我谷歌搜索,我所得到的是使用ELB,我不使用。是否有任何解決方法重定向到代碼中的https端口?將所有HTTP重定向到HTTPS而不使用ELB
我正在嘗試將所有API和Web HTTP請求重定向到Swift Perfect中的HTTPS。我已將代碼部署到AWS中。當我谷歌搜索,我所得到的是使用ELB,我不使用。是否有任何解決方法重定向到代碼中的https端口?將所有HTTP重定向到HTTPS而不使用ELB
經過大量的研究和人員指導,我想出了一個解決方案。發佈它,這樣其他的都不用花時間在這對完美
對於重定向所有的HTTP到HTTPS這裏是解決
let mainDomain = "www.<your domain>.com(or anything)"
var nonSecureRoutes = Routes()
nonSecureRoutes.add(method: .get, uri: "/**", handler: {
request, response in
response.setHeader(.location, value: "https://\(request.header(.host) ?? mainDomain)\(request.uri)")
.completed(status: .movedPermanently)
})
let certPath = "/cert/path.pem"
let keyPath = "key/path.pem"
var certVerifyMode = OpenSSLVerifyMode()
certVerifyMode = .sslVerifyPeer
do {
try HTTPServer.launch(
.server(name: mainDomain, port: 80, routes: nonSecureRoutes),
.secureServer(TLSConfiguration(certPath: certPath, keyPath: keyPath, certVerifyMode: certVerifyMode), name: mainDomain, port: 443, routes: routes))
} catch PerfectError.networkError(let err, let msg) {
print("Network error thrown: \(err) \(msg)")
}
我不知道爲什麼它被否決。投票之前至少有一個理由令人滿意。 – user1728071