Mod rewrite 如何重定向到包含锚(#)的url?

Mod rewrite 如何重定向到包含锚(#)的url?,mod-rewrite,encoding,url-rewriting,Mod Rewrite,Encoding,Url Rewriting,我需要获取标准的传入URL,并重写重定向它们到单个页面上的目标特定锚(传入html页面名称成为锚名称)。例如,规则如下: RewriteRule ^files/([a-zA-Z0-9\-_]+)\.html$ /test.html#$1 [R] 所以这个url: http://foo.com/files/bar.html …将成为: http://foo.com/test.html#bar 规则本身工作正常,但#字符在浏览器地址栏中编码为: http://foo.com/test.html

我需要获取标准的传入URL,并重写重定向它们到单个页面上的目标特定锚(传入html页面名称成为锚名称)。例如,规则如下:

RewriteRule ^files/([a-zA-Z0-9\-_]+)\.html$ /test.html#$1 [R]
所以这个url:

http://foo.com/files/bar.html
…将成为:

http://foo.com/test.html#bar
规则本身工作正常,但#字符在浏览器地址栏中编码为:

http://foo.com/test.html%23bar
当然,它不能作为锚正常工作。有没有办法在.htaccess中强制它不编码散列?我也尝试过像
\\\
那样转义它,但这没有什么区别。

尝试规则中的noescape(NE)标志:

RewriteRule ^files/([a-zA-Z0-9\-_]+)\.html$ /test.html#$1 [NE, R]

使用
NE
,或不使用转义标志:


RewriteRule^files/([a-zA-Z0-9\-\\+)\.html$/test.html\\$1[NE,R]

帕特以57秒的优势击败了我;)让世界知道SO的“新答案”警告需要更长的时间!太棒了,谢谢。我觉得应该是简单的,但谷歌没有给我指路;)