2011-10-21 7 views
1

にシャープ記号(#)を使用すると、だからこれのJISTは、 である私は、ファイルがあります:.htaccessの検索

search.php 

I後藤:

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

関連する問題