redirect the root of a domain, while leaving the www version unredirected

If you are hosting on a LAMP environment. You can put this redirect in .htaccess file. RedirectRule must be placed before the WordPress generate rules. So that, your rule get executed before WordPress take it through. RewriteRule will look something like this

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / # if WP installed in a folder use /folder_name
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule . /holding.html [L] # to redirect all 404 pages
RewriteRule bad_link\.html /holding.html [L] # to redirect selected 404 page
</IfModule>

Note: Make sure it is placed before the WordPress generate Rewrites. Otherwise, it wont be work

Edit: To redirect domain.com to domain.com/holding.html replace 7th line with following

RewriteRule ^$ /holding.html [L] # to domain.com to holding.html page