3

/tagged/c#自分のウェブサイトにマップしたいのですが/?tagged=c#。明らかに、#はサーバーに表示されないので、URLエンコードして%23。これが私が使用している.htaccessです:

RewriteBase /
RewriteEngine On
RewriteRule ^tagged/(.*)$ /?tagged=$1 [NC]

ご想像のとおり、これは機能し、次のクエリを渡しますC#

/?tagged=C%23

しかし、これらはそうではなく、すべてがC

/tagged/C%23
/tagged/C%23moretextthatgetslost

はリテラルハッシュとして解釈されていると思い#ますので、途中で失われます。

これらの2番目のケースを機能させるには何をする必要がありますか?

4

1 に答える 1

4

[B]フラグを使用する必要があることがわかりました。

RewriteBase /
RewriteEngine On
RewriteRule ^tagged/(.*)$ /?tagged=$1 [NC,B]

ドキュメントの言い換え:

Bフラグを使用すると、代わりににマップ/C%2b%2bされ/index.php?show=/C%2b%2bます。

于 2012-06-10T16:51:26.570 に答える