1

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

search.php

当我去:

search.php?search=%23HashTag

搜索返回:#HashTag

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

/search/%23HashTag

什么都没有返回。我已经通过稍后在搜索中放置数字符号进行了测试,它会返回到该点。

这就是我所拥有的:

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

我究竟做错了什么..?

4

2 回答 2

3

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

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

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

于 2011-10-21T20:54:31.153 回答
0

用工作代替它\%23好吗?

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

于 2011-10-21T20:30:31.293 回答