Hot answers tagged 404-error
Use a later action hook You cannot use Conditional Tags before the posts_selection hook has run (as per the codex), which happens right after pre_get_posts and quite a bit after init. Hence, would it not be easier to set the cookie at a later stage of the request, rather than attempting to detect the 404 earlier (which, off the bat, I would not know how)? ...
It sounds like you need to copy the file /blog/index.php to /index.php and modify a line in the new copy you create: require('./wp-blog-header.php'); to require('./wordpress/wp-blog-header.php'); Here is a complete guide to moving Wordpress into a separate folder: http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory
Confusingly WordPress does not have a concept of a simply search page, it only has concept of search results page. The difference is critical because search without search query 404s as you are seeing. If you want dedicated search page you would have to implement it as custom one, see Codex > Creating a Search Page.
Only top voted, non community-wiki answers of a minimum length are eligible