--- title: "404 Not Found — what it means and how to fix it" description: "The server is reachable and working, but there is nothing at the address you asked for. What causes an HTTP 404, what to try as a visitor, and what to check if it is your own site." url: https://atoneplace.net/error/404/ site: "At One Place" --- # HTTP 404 — Not Found **HTTP 404: Not Found** The server is reachable and working, but there is nothing at the address you asked for. ## What 404 actually means The single most familiar error on the web. The important thing it tells you is that the server is fine — DNS resolved, the connection succeeded, the site answered — and it simply has no resource at that path. It does not distinguish between "this never existed", "this was deleted" and "we would rather not say", which is deliberate: 404 is also the polite way to hide something you do not want to admit exists. ## Common causes - The URL is mistyped, or was copied with a truncated or extra character - A page was deleted or renamed without a redirect being added - A link on another site points at a URL that no longer exists - A missing asset — an image, script or stylesheet referenced by a path that is wrong - A routing rule that never matches, common after a framework upgrade or a move to a new host - Case sensitivity: Linux servers treat `/About` and `/about` as different paths, Windows does not ## If you're just trying to view the page 1. Check the URL for typos, especially hyphens, slashes and the file extension 2. Delete the end of the path back to the last slash and try again — a section page often still exists when a specific page does not 3. Use the site's own search box or navigation to find where the page moved to 4. Search the URL on a search engine; the new location is usually the first result 5. Look up the address on the Internet Archive's Wayback Machine if the page is genuinely gone ## If it's your site 1. Add 301 redirects from removed URLs to the closest equivalent page — not to the home page, which search engines treat as a soft 404 2. Check your rewrite rules and router configuration; a missing `try_files` line or a broken `.htaccess` turns a working site into a wall of 404s 3. Serve a real 404 status code with your custom error page — an error page returned as 200 gets indexed and hides the problem from monitoring 4. Crawl your own site periodically for broken internal links; they are much more common than external ones 5. Check for case mismatches after moving from a Windows or macOS development machine to a Linux server 6. For single-page applications, make sure the server falls back to `index.html` for unmatched routes, or deep links 404 on refresh ## Reference - **Status code:** 404 - **Reason phrase:** Not Found - **Category:** 4xx — Client Error - **Cacheable by default:** Yes - **Defined in:** RFC 9110 §15.5.5 ## Common questions ### What does HTTP 404 mean? The server is reachable and working, but there is nothing at the address you asked for. The single most familiar error on the web. The important thing it tells you is that the server is fine — DNS resolved, the connection succeeded, the site answered — and it simply has no resource at that path. ### How do I fix a 404 error? Check the URL for typos, especially hyphens, slashes and the file extension ### Is 404 a client error or a server error? 404 is in the 4xx range, which means client error. The request itself was the problem, so retrying it unchanged will usually return the same code. ## Related pages - [403 Forbidden](https://atoneplace.net/error/403/) - [401 Unauthorized](https://atoneplace.net/error/401/) - [429 Too Many Requests](https://atoneplace.net/error/429/) - [400 Bad Request](https://atoneplace.net/error/400/) - [413 Content Too Large](https://atoneplace.net/error/413/) - [422 Unprocessable Content](https://atoneplace.net/error/422/) - [405 Method Not Allowed](https://atoneplace.net/error/405/) - [409 Conflict](https://atoneplace.net/error/409/) - [415 Unsupported Media Type](https://atoneplace.net/error/415/) - [408 Request Timeout](https://atoneplace.net/error/408/) - [410 Gone](https://atoneplace.net/error/410/) - [451 Unavailable For Legal Reasons](https://atoneplace.net/error/451/) ## Sources - Hypertext Transfer Protocol (HTTP) Status Code Registry — IANA (https://www.iana.org/assignments/http-status-codes/) - RFC 9110: HTTP Semantics — IETF (https://www.rfc-editor.org/rfc/rfc9110.html)