用%23重写一个网址到#

时间:2012-03-29 09:54:15

标签: .htaccess mod-rewrite

我试图做一些搜索(并提出这个问题:How to rewrite a URL with %23 in it?)但它并不是我想要的。

我有一个网站,带有标签内容部分(x-tab,y-tab,z-tab等)。有链接:www.site.com/#x-tab。然后我使用jQuery监视每次单击-tab链接并显示所选内容。这很好。

我注意到我的日志中有很多404错误,指向www.site.com/%23x-tab,www.site.com/%23y-tab等,所以想要重写%23 * -tab到#* - tab(因为我希望x,y,z是动态的)。

非常感谢帮助

2 个答案:

答案 0 :(得分:2)

这里有一点混乱:
当您使用%23浏览器时,请将此字符作为URL的一部分发送。但是当你使用#时,浏览器不会发送#以及之后的任何内容作为URL的一部分。因此www.site.com/#x-tab表示www.site.com/表示URL(并被请求),但x-tab表示位置哈希值。但是当你使用www.site.com/%23x-tab浏览器时(确切地)将其发送给服务器。并且Web服务器在服务器上搜索文件23x-tab
所以你想要的是使用# NOT %23

答案 1 :(得分:2)

我设法通过使用NE标志解决了这个问题,即:

RewriteRule ^#x-tab / [R=301,L,NE]