Tested in debian 8 / Apache 2.4.10
In apache enviroment with mod_rewrite, you can use the flag NE (no escape) for rewriting urls con special characters like #, ?, & … , example:
RewriteEngine On RewriteRule ^(.*)$ "http://domain.com/#tag" [R=301,NC,L,NE]
R=301: type of redirection, 301 in this case
NC: no case or case insensitive
L: stop processing the rule set, like “break” in C