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

我认为#它被解释为文字哈希,因此在途中丢失了。

我需要做什么才能使这些第二种情况起作用?

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 回答