我正在使用jQuery Mobile,它的功能非常好。虽然有一些错误。
例如;我按照您的意图输入了我的HTML &
而不是&
。 jQuery没有正确阅读它,当它在网址中显示时,&
显示的是&
而不是它的意图。
例如
<a href="index.php?foo=true&bar=false">Hello</a>
它将转到
example.com/index.php?foo=true&bar=false
什么时候应该去
example.com/index.php?foo=true&bar=false
这真的很烦人,而且我使用了很多,所以我不能手工编写.htaccess,因为所有的get变量都会改变,而且我会写一个非常长的文件,我写的每个可能的foo和bar。
我的问题是:apache服务器是否有一种快速方法可以将&
更改为&
?
答案 0 :(得分:0)
字符串index.php?foo=true&bar=false
在用作属性值时,会被浏览器解码为index.php?foo=true&bar=false
。
所以,点击此链接:
<a href="index.php?foo=true&bar=false">Hello</a>
转到index.php?foo=true&bar=false
,而不是index.php?foo=true&bar=false
。
这是因为&
是HTML中的特殊字符,而&
是您对其进行编码以消除其特殊含义的方式。
写<a href="index.php?foo=true&bar=false">
实际上无效,写<a href="index.php?foo=true&bar=false">
完全有效。
如果jQuery错误地读取它,jQuery中肯定存在错误,或者你做错了。
如果您有大量用户使用index.php?foo=true&bar=false
请求,您可能需要重写这样的请求:
RewriteCond %{THE_REQUEST} ^(GET|HEAD) (.*)&(.*) HTTP/[\d.]+$
RewriteRule %2&%3 [R]
(在%{THE_REQUEST}上使用RewriteCond和匹配,因为RewriteRule在查询字符串上不匹配。)
这会将用户重定向到&
已解码为&
的网址。如果有多个&
,则会有多个重定向。