HTTP 404 是什麼:用 Apache 看懂網址與檔案的關係

HTTP 404 是伺服器已經收到瀏覽器請求,但找不到指定資源時回傳的狀態碼。本篇記錄贊贊小屋在完成 Apache 是什麼 的安裝之後,實際觸發一次 404 的完整過程,從確認 htdocs 目錄的檔案開始,經過請 Codex 判斷原因、補上副檔名、建立資料夾與 index.html,最後看懂「不帶 .html 的網址也能正常開啟」背後的規則。讀完這篇,不只能排除 404 錯誤,還能理解網址與實體檔案之間到底如何對應。

HTTP 404 是什麼:用 Apache 看懂網址與檔案的關係
Youtube video

一、確認 htdocs 中的 HTML 檔案

贊贊小屋這次先開啟「本機 > 本機磁碟 (C:) > Apache24 > htdocs」資料夾,確認裡面實際存在的檔案。資料夾中除了預設的「index.html」,還有另一個以中文命名的「採購分析儀表板.html」,右側預覽視窗也直接顯示這份儀表板的內容,包括資料期間、產出日期與累計採購金額等數據,確認檔案確實存在,而且內容可以正常讀取。

Apache 收到瀏覽器請求後,並不會因為看到相近的檔名,就自動替網址補上 .html。在目前沒有設定網址重寫的情況下,它會依照網址路徑,到 htdocs 中尋找對應的檔案或資料夾。這也是接下來出現 404 的關鍵原因。

一、確認 htdocs 中的 HTML 檔案
確認 htdocs 中的 HTML 檔案重點整理

二、HTTP 404 代表找不到指定資源

HTTP 404 代表伺服器已經收到瀏覽器的請求,但找不到目前網址所指定的資源。贊贊小屋這次直接在網址列輸入「localhost/採購分析儀表板」,省略了副檔名,瀏覽器分頁隨即顯示「404 Not Found」,畫面上也出現「The requested URL was not found on this server.」的提示文字,完整定義可以參考 MDN 的 404 Not Found 技術說明。

在這次操作中,404 說明「伺服器連得上,但網址與資源沒有對應」,問題重點不在 Apache 是否啟動,而在請求路徑是否正確。

二、HTTP 404 代表找不到指定資源
HTTP 404 代表找不到指定資源重點整理

三、請 Codex 檢查 404 發生原因

贊贊小屋把畫面截圖交給 Codex,並附上完整提問:

幫我看一下「C:\Apache24\htdocs」,我以為只要是html檔案就可以瀏覽?

Codex 檢查 htdocs 目錄後回覆,確認 HTML 檔可以瀏覽,這次的 404 是因為網址少了副檔名,並列出目錄中實際存在「index.html」與「採購分析儀表板.html」兩個檔案,同時直接給出正確的網址連結。

Codex 不是只根據一句文字描述猜測答案,而是同時參考贊贊小屋附上的 404 畫面,並檢查 htdocs 目錄中實際存在的檔案,再將網址列與檔名逐一比對,最後找出缺少 .html 副檔名的差異。這種把錯誤畫面、操作環境與實際檔案一起交給 AI 判斷的方式,也適合後續排查 PHP、CSS 或資料庫連線問題。

三、請 Codex 檢查 404 發生原因
請 Codex 檢查 404 發生原因重點整理

四、補上 HTML 副檔名正常開啟

贊贊小屋依照 Codex 給的網址,把「localhost/採購分析儀表板.html」重新輸入瀏覽器,頁面立即正常顯示,標題區塊出現「採購分析儀表板」,底下也完整呈現累計採購金額、採購單數、往來廠商數與採購人員數等統計卡片。

補上副檔名後立即正常顯示,等於確認 Apache 與 Port 都在正常運作,檔案也能被伺服器讀取;這次問題確實出在網址少了副檔名。

四、補上 HTML 副檔名正常開啟
補上 HTML 副檔名正常開啟重點整理

五、建立同名資料夾與 index.html

贊贊小屋接著想讓網址不用帶副檔名也能開啟,於是請 Codex:

建立一個資料夾 採購分析儀表板,裡面放 index.html

Codex 執行後回覆已經建立「C:\Apache24\htdocs\採購分析儀表板\index.html」,並實際測試過不帶副檔名、以及網址尾端加上斜線的兩種寫法。Codex 回覆表示,這兩種網址經測試都回傳 HTTP 200,代表請求成功,現在不用加「.html」也能正常開啟。

這裡示範的是最直觀的做法:把同名資料夾當成網址路徑,再把首頁檔案放進去,不需要先碰更複雜的網址重寫規則,這種方式也很適合剛接觸靜態網站架設的人先上手。

五、建立同名資料夾與 index.html
建立同名資料夾與 index.html重點整理

六、確認預設首頁的目錄結構

贊贊小屋回到檔案總管,依照路徑「Apache24 > htdocs > 採購分析儀表板」實際檢查目錄結構,確認「採購分析儀表板」資料夾中只有一個「index.html」,而上層 htdocs 目錄仍然保留原本的「採購分析儀表板.html」與「index.html」。

當網址指向的是一個資料夾而不是檔案時,Apache 會依照設定檔中的 DirectoryIndex 尋找預設首頁。上一篇 Apache 伺服器 已經看過「DirectoryIndex index.html」這行設定,這一節等於把設定檔裡的文字,轉換成實際存在的目錄結構。

這兩個檔案目前顯示相同內容,但實際上是兩個彼此獨立的檔案;日後若只修改其中一份,另一個網址的內容不會自動同步更新。

六、確認預設首頁的目錄結構
確認預設首頁的目錄結構重點整理

七、不帶 .html 的網址也能開啟

贊贊小屋最後在網址列輸入「localhost/採購分析儀表板/」,頁面同樣正常顯示「採購分析儀表板」的完整內容,網址本身完全沒有出現「.html」字樣。

畫面雖然看不到「.html」,Apache 實際上仍然讀取資料夾裡的 index.html,只是這個對應過程由伺服器自動完成。許多正式網站的網址之所以不顯示副檔名,常見原因包括目錄首頁、網址重寫或網站程式的路由機制。

七、不帶 .html 的網址也能開啟
不帶 .html 的網址也能開啟重點整理

網址乾淨的背後,仍是一套找檔案的規則

從最初的一次 404,到後來網址可以完全不帶「.html」,贊贊小屋這次其實只做了兩件事:先確認錯誤真正發生在哪裡,再一步一步把對應規則補齊。因此,404 從來不是「網站壞了」的代名詞,而是一個提示——網址與實體檔案之間,還缺了一個環節。建立資料夾、放入 index.html,看起來只是多做了一個步驟,但這正是讓網址不必直接顯示檔名的其中一種基本做法。讀者往後看到不帶副檔名的網址時,不必再假設瀏覽器有什麼特殊魔法,而是可以直接想到,伺服器背後很可能就正在依照這一套規則,找到它該回傳的那個檔案。


學會計、學Excel、學習AI工具,歡迎加入贊贊小屋社群

Claude Code 教學:從安裝到 Excel、PPT 與網頁實戰

Claude Code 教學ChatGPT怎麼用?ChatGPT Excel教學ChatGPT寫ExcelVBAGemini是什麼?Notion教學AI對會計的影響

贊贊小屋AI課程:OpenClaw AI 代理Codex 網站Claude Code 實戰ChatGPT課程AI工具全攻略Notion課程

Claude Code 教學:從安裝到 Excel、PPT 與網頁實戰