首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要在.htaccess重写规则中转义#(哈希/井号)字符

需要在.htaccess重写规则中转义#(哈希/井号)字符
EN

Stack Overflow用户
提问于 2010-08-27 22:15:14
回答 4查看 28.4K关注 0票数 16

这个问题很简单,但我已经好几个小时没有找到答案了。

我需要做的是:

代码语言:javascript
复制
RewriteRule ([^#])#(.*) $1\%23$2

这基本上意味着我想让url避开来自外部代码的怪异的散列符号。

反斜杠(\)无法转义此符号...请不要建议使用%23代替#,因为它不能很好地工作。

(%23与#不匹配,因为它根本不是== %23)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-27 22:22:46

URL的哈希部分不可用于重写。当web浏览器向web服务器发送URL请求时,它会将所有内容都发送到散列符号。散列仅在客户端可用(例如,JavaScript代码可以看到它)。

票数 12
EN

Stack Overflow用户

发布于 2012-07-08 13:30:39

我只是在这个论坛上发布了几篇帖子后,在一个网站上使用了一个重写规则,带有NE不转义和R=301重定向选项:

代码语言:javascript
复制
RewriteRule ^galleries/([a-zA-Z0-9_-]+)$ /gallery.html#/$1 [R=301,NE,L]

这会将所有的库/变量重定向到/Gallery.html#/变量

编辑:规则的重要部分是NE,它指示服务器解析输出而不转义字符。如果没有这个,它将尝试转义重写规则中的#,这就是OP所询问的。

票数 34
EN

Stack Overflow用户

发布于 2011-04-12 11:52:07

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html中搜索扩展重定向。你的问题有一个很好的解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3585019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档