A 404 after a ZIP upload is usually a packaging problem, not a hosting mystery. Start by downloading or opening the exact archive you uploaded. The answer is normally visible in its first few files.

Problem: index.html is inside another folder

Hosts look for /index.html at the root of a static deployment. If your archive contains my-site/index.html, re-create it from inside my-site so index.html is the first item in the ZIP.

Problem: CSS, images, or scripts are missing

Open the browser developer tools and look at the failing URL. Compare it with the path in your archive. The file might be missing, named with a different capital letter, or referenced with an absolute local path. Change references to relative URLs and publish a fresh ZIP.

Problem: you uploaded source instead of build output

Projects made with React, Vite, Astro, or similar tools generally cannot be served from their source folder. Run the project build command. Then upload the generated directory—often dist, build, or public—not src and not node_modules.

Problem: a PHP page does not run

Create the deployment as a PHP project. A static deployment intentionally serves files rather than executing server code. Check the error logs if the PHP site returns 500; do not solve a server-side error by exposing configuration files or secrets.

Work through one issue at a time, publish a new archive, and test the live URL in a private window. Keeping each ZIP as a clean release makes it much easier to identify which change fixed the problem.