I was having a similar issue. The website would work on the home page and I could log into WordPress admin, but if I clicked on any other link it resulted in a 404 error.
The page that is linked to in some of the other answers isn’t the ideal solution. Basically, it turns on AllowOverride to “All” which allows .htaccess files to work. This is great when you are on shared hosting with no access to the apache configuration file, but shouldn’t be used when you are on a host such as digitalocean, where you have access to the server configuration file.
The ideal solution is to put the information that is in the WordPress .htaccess file into the main apache configuration file. This helps to improve the server performance. This page shows how to do it and why: