在沒改IIS的"要求篩選"設定前,只要打domain name(由於目前是測試所以是使用IP如:https://113.XXX.XXX.XXX )網頁會自動執行IIS的"預設文件"中的default.aspx,然後導到首頁(如:https://113.XXX.XXX.XXX/Account/Login.aspx ),但是若是將"要求篩選"的"允許未列出的附檔名"取消勾選"(附檔名中已增設".aspx")時,
只輸入https://113.XXX.XXX.XXX 時,會出現找不到網頁的錯誤訊息
會無法自動執行default.aspx並導到首頁,請問若是想要只輸入domain name便可以導到首頁需要怎麼設定?
你要看你publish出來的結果,不是直接這樣看的。
IIS預設的部分只有如圖所示,但是你有沒有發現你在調整設定之前,路徑是https://113.XXX.XXX.XXX/Account/Login.aspx
?
這代表實際上有另外的程式在幫你導路徑到Account/Login.aspx
,結果你設定一改,原本幫你導路徑的程式碼不被執行,所以就連不上了。
這是那台主機IIS上預設文件的設定,以前是只要輸入domain name時,會觸發default.aspx這一隻網頁,然後透過這一隻程式再將網頁導到Account/Login.aspx這一隻網頁。
現在我只是純粹將 "要求篩選/允許未列出的附檔名" 已勾選=>未勾選,再來輸入domain name後網頁就掛掉了,感覺上沒觸發default.aspx的樣子,所以才想問其他人有沒遇過類似的問題。
以下是我測試的結果
我將default.aspx轉頁的動作取消
當 "要求篩選/允許未列出的附檔名" 有勾選時
當 "要求篩選/允許未列出的附檔名" 未勾選時
結果論,未勾選時,不知為什麼就沒觸發default.aspx這一隻。
我有開了簡單的站台測試一下,只是將內容改為使用index.html,有出現跟你一樣的狀況,可以確定問題是在IIS那邊設定。
我覺得應該是當你沒有輸入檔案名稱時,IIS那邊會有自動幫你導到預設文件的程式,但是只開放給.html的副檔名時,自動屏蔽了該程式所導致,如果想要正常運作,應該查出來IIS自動導到預設文件是怎樣運作的就可以了。
更新一下測試結果,我後來直接去翻IIS的log,看到是這樣的內容,但是副檔名篩選不能填入空白,所以那個取消勾選應該是辦不到讓IIS自動導到default page,會在一開始GET /
時就會失敗,然後回傳404.7。
當然也有大絕可以用,你可以在錯誤頁面那邊設定,讓他404.7時一律回到首頁,雖然多跳幾層,但應該可以達成你想要的效果。
在web.config增加
測試後
若是只輸入domain name,畫面還是404.7,並沒有觸發上面的設定進行自動跳轉。
但若是輸入完整的網址,但是該網頁不存在時,是有觸發上面的設定進行自動跳轉的。
測試OK了,後來發現只輸入domain name時,觸發的是靜態網頁,所以相關的設定值是
只要在404.htm,增加轉到首頁即可。
你有沒有去申請 Domain NAME 呢?? https://tw.godaddy.com/
如果你有申請好 Domain NAME 的話,就可以直接在 iis 上直接設定站台,將相關資料填進去就可以了,非常簡單的..