The detailed documentation for these variables isn't easy to find, but you could test them by writing a 'test rule' to see what they all contain...
RewriteRule ^mydirectory/mypage\.html$ http://www.example.com/?Http_Host=%{HTTP_HOST}&Request_Uri=%{REQUEST_URI}&Query_String=%{QUERY_STRING}&The_Request=%{THE_REQUEST} [R=301,L]
With this rule in place, request the URL-path /mydirectory/mypage.html from your server, then look at the address bar after the redirect.
Doing an HTTP/1.1 GET on a test URL of
http://www.example.com/mydirectory/mypage.html?myqueryparm1=this&myqueryparm2=that#myfragment=shard
you'll get:
%{HTTP:HOST} = www.example.com
%{REQUEST_URI} = /mydirectory/mypage.html
%{QUERY_STRING} = myqueryparm1=this&myqueryparm2=that
%{THE_REQUEST} = GET /mydirectory/mypage.html?myqueryparm1=this&myqueryparm2=that#myfragment=shard HTTP/1.1
The RewriteRule pattern must match "mydirectory/mypage.html" in .htaccess or within a <Directory /> container in a server config file, or it must match "/mydirectory/mypage.html" in a server config file outside of any <Directory> container.
Note that %{REQUEST_URI} and %{QUERY_STRING} can and will be updated by internal rewrites done in the context of this HTTP request. However, %{HTTP_HOST} and %{THE_REQUEST} will not get updated in this manner, since an internal rewrite takes place entirely "inside" this host, and %{THE_REQUEST} is always the original HTTP request line as sent by the client (e.g. browser) and logged in your raw server access log file.
Note that most user-agents do not send the fragment to the server, an exception being some browsers built on Apple's Webkit. This fragment is also called a "named anchor" on an HTML page, and is defined using <a name="shard"> or <div name="shard">
Jim