这个问题很简单,但我已经好几个小时没有找到答案了。
我需要做的是:
RewriteRule ([^#])#(.*) $1\%23$2这基本上意味着我想让url避开来自外部代码的怪异的散列符号。
反斜杠(\)无法转义此符号...请不要建议使用%23代替#,因为它不能很好地工作。
(%23与#不匹配,因为它根本不是== %23)
发布于 2010-08-27 22:22:46
URL的哈希部分不可用于重写。当web浏览器向web服务器发送URL请求时,它会将所有内容都发送到散列符号。散列仅在客户端可用(例如,JavaScript代码可以看到它)。
发布于 2012-07-08 13:30:39
我只是在这个论坛上发布了几篇帖子后,在一个网站上使用了一个重写规则,带有NE不转义和R=301重定向选项:
RewriteRule ^galleries/([a-zA-Z0-9_-]+)$ /gallery.html#/$1 [R=301,NE,L]这会将所有的库/变量重定向到/Gallery.html#/变量
编辑:规则的重要部分是NE,它指示服务器解析输出而不转义字符。如果没有这个,它将尝试转义重写规则中的#,这就是OP所询问的。
发布于 2011-04-12 11:52:07
在http://httpd.apache.org/docs/2.0/misc/rewriteguide.html中搜索扩展重定向。你的问题有一个很好的解决方案。
https://stackoverflow.com/questions/3585019
复制相似问题