所以这个的主旨是, 我有一个文件:
search.php
当我转到:
search.php?search=%23HashTag
搜索返回:#HashTag
但是当我使用我的.htaccess方法时:
/search/%23HashTag
没有返回任何内容。我已经通过在搜索中稍后放置数字符号进行测试,然后返回到该点。
这就是我所拥有的:
RewriteRule ^search/([^\.]+)$ search.php?search=$1 [NE,L]
我做错了什么..?
答案 0 :(得分:3)
将您的旗帜更改为[NE,B,L]
。
http://httpd.apache.org/docs/current/rewrite/flags.html#flag_b
mod_rewrite在应用转换之前对url进行unescapes。我不确定为什么它会在哈希之后丢失任何东西(也许它会将其重新解释为url,并丢弃该片段?)。在任何情况下,[B]在通过重写规则运行之前重新转义URL。
答案 1 :(得分:0)
用\%23
替换它可以正常工作吗?
(清晰度:反对在.htaccess文件中写#)