【问题标题】:Using a hash sign (#) in a .htaccess search在 .htaccess 搜索中使用井号 (#)
【发布时间】:2011-10-21 20:25:34
【问题描述】:

所以这个的要点是, 我有一个文件:

search.php

当我去的时候:

search.php?search=%23HashTag

搜索返回:#HashTag

但是当我使用我的 .htaccess 方法时:

/search/%23HashTag

没有返回任何内容。我已经通过稍后在搜索中输入数字符号进行了测试,它会返回到该点。

这就是我所拥有的:

RewriteRule ^search/([^\.]+)$ search.php?search=$1 [NE,L]

我做错了什么..?

【问题讨论】:

    标签: html .htaccess search ascii hashtag


    【解决方案1】:

    将您的标志更改为[NE,B,L]

    http://httpd.apache.org/docs/current/rewrite/flags.html#flag_b

    mod_rewrite 在应用转换之前取消转义 url。我不确定为什么它在散列之后会丢失任何东西(也许它会将其重新解释为 url,并丢弃片段?)。在任何情况下,[B] 在通过重写规则运行之前重新转义 url。

    【讨论】:

      【解决方案2】:

      \%23 替换它可以吗?

      (清晰:反对在.htaccess文件中写#)

      【讨论】:

      • 它实际上只是将 \ 更改为正斜杠
      • 刚搬到 FreeBSD apache 服务器,我注意到它在那个发行版上不起作用。
      猜你喜欢
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 2018-02-13
      • 2016-09-26
      相关资源
      最近更新 更多