Twig:如何防止在GET参数中对方括号进行编码
在my symfony页面中有一组复选框,因此它们具有相同的名称:Twig:如何防止在GET参数中对方括号进行编码,twig,urlencode,square-bracket,Twig,Urlencode,Square Bracket,在my symfony页面中有一组复选框,因此它们具有相同的名称: <input type="checkbox" name="opt[]" value="1"> Option 1 <input type="checkbox" name="opt[]" value="2"> Option 2 ... 选项1 选择2 ... 我只选中一个框并提交,浏览器中的URL如下所示: 在我的树枝上,我有这样的指示: <link rel="canonical" href="{
<input type="checkbox" name="opt[]" value="1"> Option 1
<input type="checkbox" name="opt[]" value="2"> Option 2
...
选项1
选择2
...
我只选中一个框并提交,浏览器中的URL如下所示:
在我的树枝上,我有这样的指示:
<link rel="canonical" href="{{ app.request.uri }}">
在HTML源代码中,我有以下内容:
<link rel="canonical" href="https://localhost/list?opt%5B0%5D=1">
现在浏览器显示规范URL与当前URL不同
如何防止细枝对方括号进行编码?为什么他要在他们之间加一个0
关于你为什么不切换到
POST
而不是GET
?因为我正在从旧URL到新URL进行301重定向,所以我必须用GET发送参数,你看到的实际上是正确的(编码的)URL。您的浏览器实际上“欺骗”了您,使您认为example.com/?foo[]=bar
是一个,而事实并非如此。您应该编写一个过滤器,从app.request.uri
中删除查询字符串,以找到正确的规范URL。我明白了,谢谢:)一个简单的替换()解决了这个问题,但仍然无法找出显示的URL中为什么有0!因为您有一个名为opt[]
的输入?如果浏览器没有添加索引,您将如何跟踪选中了这两个复选框中的哪一个?