有趣的 IIS 奇怪的 404 文件存在,但僅適用於特定的主機頭
所以,我有一個有 2 個主機頭的網站:
header1.example.com header2.example.com
在這個站點中,我有一個名為 Foo 的虛擬目錄,它有各種子目錄 1、2、3 和 4,它們有各種樣式表。頁面通過
/Foo/1/Style.css
和動態引用這些樣式表/Foo/2/Style.css
。IE
http://header1.example.com/SomePageThatUsesFoo1Style.aspx http://header1.example.com/SomePageThatUsesFoo2Style.aspx
當我去
http://header1.example.com/SomePageThatUsesFoo2Style.aspx
我得到一個 404 試圖得到/Foo/2/Style.css
.該文件絕對 100% 存在於正確的目錄中,並且權限正確。
有趣的部分。如果我去
http://header1.example.com/SomePageThatUsesFoo1Style.aspx
它工作就好了。另外,如果我去http://header2.SomePageThatUsesFoo2Style.aspx
或者http://header2.example.com/SomePageThatUsesFoo1Style.aspx
它工作得很好。有沒有人見過這種奇怪的問題,其中 1 個特定的主機頭搞砸了?
我還要補充一點,只是為了咯咯笑,我從頭開始創建了一個全新的網站,帶有一個新的主機頭 (
header3.example.com
),一切正常。我停止了舊站點,並將和添加header1
到header2
新站點,並且發生了同樣的錯誤。注意:我嘗試使用 Microsoft Network Monitor 3.4 來擷取數據包。我點擊了我的網站的幾個頁面,其中經歷了上述情況。對任何 HTTP 狀態程式碼 >= 400的擷取應用過濾器,但沒有結果。從我的桌面使用 Fiddler 訪問我的網站時,Fiddler 也顯示 404。
有什麼想法嗎?
通過在伺服器上執行數據包擷取來觀察實際的請求和響應,我很幸運地追踪了 404 錯誤。
在擷取中,您應該能夠看到生成 404 的實際請求和響應。我通常鍵入請求以查看請求的確切內容。當遇到 404 時,您應該能夠看到正在請求的實際 URL,然後您可以驗證該 URL 是否有效。