Url redirect to another page on the same site
Solution 1:
From what you described, you want a rewrite rule more like:
RewriteRule ^(.*)$ $LINK [L,R=301]
In other words, lose the $1. That's attaching the original URL to the new URL, which results in an infinite loop.
(I didn't verify the conditionals, but one of those should work, I think)
Solution 2:
The problem with the examples above is that the RewriteRule lines do not redirect to to underconstruction.html, they redirect roughly to the same URL again (since $1 matches the (.*)).
This example will 301 redirect all URLs to "/underconstruction.html":
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/underconstruction.html
RewriteRule ^ /underconstruction.html [R=301]
(which translates as "If URI is not /underconstruction.html, redirect to /underconstruction.html")
Solution 3:
How about
<VirtualHost *:80>
...
RedirectMatch !^/underconstruction.html http://yourdomain/underconstruction.html
...
</VirtualHost>