2012-06-10 31 views
3

我想在我的網站上將/tagged/c#映射到/?tagged=c#。顯然,#將不會被服務器看到,所以我把它編碼爲%23。下面是我使用的.htaccess:.htaccess在URL中使用`#`

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

正如你所期望,這個作品,傳遞的C#查詢:

/?tagged=C%23 

然而,這些不這樣做,的C都給人傳遞查詢

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

我假設#被解釋爲一個文字亂碼,所以沿途的某個地方丟失了。

我需要做些什麼才能使這些第二種情況起作用?

回答

4

原來我需要使用[B]標誌:

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

複述的文檔:

與B標誌,這反而映射/C%2b%2b/index.php?show=/C%2b%2b