2011-10-21 54 views
1

所以這個JIST使用散列符號(#), 我有一個文件:中的.htaccess搜索

search.php 

當我轉到:

search.php?search=%23HashTag 

搜索將返回: #HashTag

但是當我用我的.htaccess方法:

/search/%23HashTag 

沒有返回。我已經通過在搜索中稍後放入數字符號進行了測試,並且它返回到那一點。

這是我有:

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

我在做什麼錯..?

回答

3

改變你的標誌,以[NE,B,L]

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

mod_rewrite的反轉義應用轉換之前的URL。我不確定它爲什麼會在散列後丟失任何東西(也許它將它重新解釋爲一個url,並丟棄該片段?)。在任何情況下,[B]在通過重寫規則運行之前都會重新轉義url。

+0

非常感謝! – Jake

0

\%23代替它嗎?

(淨度:反對在.htaccess文件中寫入#)

+0

它實際上只是將\改成正斜槓 – Jake

+0

剛搬到FreeBSD apache服務器,我注意到它在這個發行版上不起作用。 – Tim