我有一套域名,我必須創建永久重定向到一個單一的域,正在由一個數字海洋服務器上運行的節點應用程序使用,並且讓我們說是否它有3種不同的路線,例如/a, /b, /c
,我希望我的域分別指向/a, /b, /c
。創建多個永久重定向到單節點應用程序路由
此外,我還可以提供哪些其他信息以使我的問題更清晰。
我有一套域名,我必須創建永久重定向到一個單一的域,正在由一個數字海洋服務器上運行的節點應用程序使用,並且讓我們說是否它有3種不同的路線,例如/a, /b, /c
,我希望我的域分別指向/a, /b, /c
。創建多個永久重定向到單節點應用程序路由
此外,我還可以提供哪些其他信息以使我的問題更清晰。
我不知道這是否是最好的解決辦法,但在你的Node.js應用程式,你可以這樣做:
const express = require('express')
const app = express()
app.get('/', function(req, res) {
// remove the port number if it's there
const host = req.get('host').split(':')[0]
if(host === "a.com") {
res.redirect('/a')
}
else if(host === "b.com") {
res.redirect('/b')
}
else if(host === "c.com") {
res.redirect('/c')
}
else {
// redirect somewhere else
}
})
app.get('/a', function(req, res) {
res.send('hello from a')
})
app.get('/b', function(req, res) {
res.send('hello from b')
})
app.get('/c', function(req, res) {
res.send('hello from c')
})
app.listen(3000, function() {
console.log('Listening on 3000')
})
您可以通過更新您的主機文件測試這一局部,來點.com,b.com和c.com改爲127.0.0.1。
我也想到了一個類似的解決方案,但後來我認爲重定向是基於請求標頭,可以由用戶/機器人更改。這會影響到什麼地方?另外,如果假設我有5個域名指向同一個數字海洋水滴,現在我如何快速寫入,以便我的整個應用程序可以處理來自一個域的請求,而其他域只用於服務特定的路線,如/ a或可能像{abc} .xyz.com – DeadMan
這樣的子域名是的,可以通過混淆標題來欺騙它。另一種選擇是在你的node.js應用前使用一個反向代理,比如nginx,它基於域進行重定向,但我想像nginx使用與express相同的頭來確定域。 – dan
要回答你的修改,如果你想限制某些用戶的域名,那麼你需要適當的安全性 - https://expressjs.com/en/advanced/best-practice-security.html – dan
您使用的是Express嗎? – dan
是的,我正在使用Express 4 – DeadMan