You don't need to specify https nor the port on the host header, cause those are specified elsewhere, https is by using a ssl servers profile and the port is at the pool member.
Alsop testing if uri starts with / is useless since all uris stars with /.
If I understand correctly your requirement, why not first redirecting user to target path, then doing just the host replacement.
Something like this that :
when HTTP_REQUEST {
if { [HTTP::uri] equals "/"}
{
HTTP::redirect "https://[HTTP::host]/your/full/path/something.html"
}
else {
HTTP::header replace Host ServerName.Domain.com
}
}