我想将/tagged/c#
映射到我的网站上的/?tagged=c#
。显然,服务器不会看到#
,因此我将其编码为%23
。这是我正在使用的.htaccess文件:
RewriteBase /
RewriteEngine On
RewriteRule ^tagged/(.*)$ /?tagged=$1 [NC]
如您所料,这可以通过传递
C#
查询来实现:/?tagged=C%23
但是这些都不是,所有这些都可以传递
C
的查询/tagged/C%23
/tagged/C%23moretextthatgetslost
我假设
#
被解释为文字哈希,因此在此过程中会丢失。要使第二种情况起作用,我需要怎么做?
最佳答案
原来我需要使用 [B]
标志:
RewriteBase /
RewriteEngine On
RewriteRule ^tagged/(.*)$ /?tagged=$1 [NC,B]
解释文档:
带有B标志,它将改为将
/C%2b%2b
映射到/index.php?show=/C%2b%2b
。