亚洲色偷偷一区二区手机在线_国产一卡2卡3卡4卡有限公司_日产精品一至六区_国产成人不卡无码免费视频

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:9:00-21:00
當(dāng)您遇到問(wèn)題
關(guān)閉右側(cè)工具欄
https重定向問(wèn)題
    發(fā)布時(shí)間:2022-08-25   訪(fǎng)問(wèn)量:16604

一.重定向問(wèn)題

1.1為什么要重定向?

因?yàn)閔ttp不安全,所以應(yīng)該轉(zhuǎn)換成https地址。

安全超文本傳輸協(xié)議

申請(qǐng)SSL證書(shū)并安裝它

const https = require('https ')


常量選項(xiàng)= {

cert: fs.readFileSync('........PEM’),

鍵:fs.readFileSync('........鍵’)

}


https.createServer(選項(xiàng),app)。聽(tīng)著(8103)

1.2重定向?qū)崿F(xiàn)部分

將非https端口更改為https端口

app.get('* ',function (req,res) {

if (req.protocol!== 'https') {

let host = req . headers . host;

console.log(req.headers.host)

const reg = /(?

const result = host.match(reg)[0]

host = host.replace(reg,“8103”)

console . log(` https://$ { host } $ { req . path } `)

res.redirect(302," https://${host}${req.path} `)

//RES . location(` https://$ { host } $ { req . path } `)

}

})

為什么會(huì)有http端口和https端口?

比如訪(fǎng)問(wèn)百度

會(huì)自動(dòng)重定向到他的https地址百度https

百度也用兩個(gè)端口。

將https地址的端口改為80(HTTPS的默認(rèn)端口是443)是不可訪(fǎng)問(wèn)的(https://www.baidu.com:80)

但是將http地址的端口更改為443是可以訪(fǎng)問(wèn)的(http://www.baidu.com:443)

只是顯示是http還是https。

1.3發(fā)現(xiàn)的問(wèn)題

如果靜態(tài)資源app.use (express.static('。/dist/'))是這樣配置的。

發(fā)現(xiàn)重定向沒(méi)有效果。

app.use ('/dist ',express.static('。/dist/'))發(fā)現(xiàn)它無(wú)法解析文件。

//我的解析文件看起來(lái)像這樣

app.get('/',(req,res) => {

fs.readFile('。/dist/index.html ',(err,data) => {

如果(錯(cuò)誤){

return RES . end(“404未找到”)

}

const htmlStr = data.toString()

res.end(htmlStr)

})

})

不知道是不是因?yàn)槲也渴鹆藇ue,一個(gè)單頁(yè)豐富的應(yīng)用。

1.4解決方案

記得在第一個(gè)重定向中添加next()。


解決了瀏覽器網(wǎng)址不跳轉(zhuǎn)的問(wèn)題。

但是,仍然存在一個(gè)問(wèn)題:所有路徑路徑都訪(fǎng)問(wèn)同一個(gè)index.html。


解決方法:添加路徑判斷,然后用fs導(dǎo)入文件。

一個(gè)新的問(wèn)題出現(xiàn)了:顯示一個(gè)空白頁(yè)并報(bào)告一個(gè)錯(cuò)誤。

在此插入圖片描述。


我發(fā)現(xiàn)有些css文件無(wú)法解析。


1.5終極解決方案

將其設(shè)置為app.set ('views ',path.join (_ _ dirname,')。/'))

然后把上面的代碼放到重定向的代碼下面!

結(jié)果...我發(fā)現(xiàn)如果用https網(wǎng)站,它的界面應(yīng)該也是用https接口...

典當(dāng)…

1.6新、新、新問(wèn)題——把接口改成https

因?yàn)槭褂昧瞬煌琲p的接口,所以報(bào)錯(cuò)證書(shū)文件是違法的。

net::錯(cuò)誤證書(shū)公共名稱(chēng)無(wú)效

但是,本地部署的npm運(yùn)行服務(wù)器可以訪(fǎng)問(wèn)此接口。

解決辦法

const https = require('https ')

//將axios替換為instance,并添加reject authorized:false對(duì)應(yīng)https模塊。

const instance = axios.create({

baseURL:“...”,

超時(shí):1000,

httpsAgent:新https。代理({

拒絕未授權(quán):假

})

})

終于可以正常訪(fǎng)問(wèn)問(wèn)題了。


但是~

在此插入圖片描述。

所以還是要買(mǎi)域名申請(qǐng)對(duì)應(yīng)的證書(shū)。