DNN使用非80端口和总是跳转到http://localhost问题的解决
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
我試圖在一臺服務(wù)器上安裝一個DNN網(wǎng)站時,遇到了一些問題。
問題一:
遇到的第一個問題就是網(wǎng)站總是自動導(dǎo)向到localhost。不管我怎么試,只要我輸入http://domain.com/dnn,總是自動導(dǎo)向http://localhost/dnn,這樣會導(dǎo)致外部無法訪問這個網(wǎng)站。
解決方法:
這個問題比較容易解決:
使用host登錄
到Admin->Site Setting Page
在Portal Alias(網(wǎng)站別名)設(shè)置里,添加一個新的Http 別名”domain.com/dnn”
在網(wǎng)站使用默認(rèn)的80端口時,這樣設(shè)置就可以解決問題了。
?
問題二:
當(dāng)我想把這個DNN網(wǎng)站放在8080端口上運行時,比如http://domain.com:8080/dnn,如果我點擊某個鏈接想轉(zhuǎn)到其它頁面時,URL中的端口號會消失,如http://domain.com:8080/會自動變?yōu)閔ttp://domain.com/
解決方法:
在Google了一番之后,我仔細(xì)的看了web.config文件,發(fā)現(xiàn)在web.config文件里面清楚的注明了:
<!-- set UsePortNumber to true to preserve the port number if you're using a port number other than 80 (the standard)
??? <add key="UsePortNumber" value="true" /> -->
?
我修改了appsettings節(jié),并且增加了下面這一行:
<add key="UsePortNumber" value="true" />
同時我添加了一個新的Http別名“domain.com:8080”
這樣修改之后,使用http://localhost:8080的形式不會自動丟掉端口號,使用http://domain.com:8080的形式任然會自動丟掉端口號,變成http://domain.coom 的形式
注釋:后來我發(fā)現(xiàn)這個不是DNN的問題了,而是我路由器設(shè)置和端口轉(zhuǎn)發(fā)的問題,這個隨后討論。
問題三:
在增加“UsePortNumber”設(shè)置后任然沒有解決我的問題。
解決方法:
對于安裝DNN的機器,我路由器的設(shè)置會把給8080端口的數(shù)據(jù)都轉(zhuǎn)發(fā)到80端口上來。所以當(dāng)我訪問http://domain.com:8080 ,DNN Request對象得到的URL實際上是http://domain.com,并且DNN做URL rewrite的時候,都是處理的htpp://domain.com。
這對我是個大問題,最開始我想得寫一個404 Page not found的HttpHandler來解決問題,但我很快就意識到這個事件在這個情況根本就觸發(fā)不了。隨后我想通過修改DNN的handlers來處理這個問題,最后我通過修改IIS和Router設(shè)置解決了問題。
在IIS里,我把默認(rèn)站點(DNN所在站點)設(shè)置為使用8080端口
在路由器設(shè)置里,對于8080端口的轉(zhuǎn)發(fā)由80改為8080(實際上就是不轉(zhuǎn)發(fā))
確保DNN的Http別名里添加了“domain.com:8080/dnn”。
轉(zhuǎn)載于:https://my.oschina.net/xiaohelong/blog/366869
總結(jié)
以上是生活随笔為你收集整理的DNN使用非80端口和总是跳转到http://localhost问题的解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到路上有泥巴是什么意思啊
- 下一篇: 通过telnet连接查看memcache