cuh*_*cuh 23 url encoding freemarker restlet
我有一个资源是一个.
这意味着我的网址看起来像这样:
http://myapp/index/.
我需要添加查询参数,使它看起来像这样:
http://myapp/index/.?type=xml
我使用Freemarker来表示我的资源,并为这种情况做了一个百分比编码黑客:
<#if key?matches("\\.")>
<li><a href="${contextPath}/index/%2E">${key}</a></li>
</#if>
Run Code Online (Sandbox Code Playgroud)
这适用于Firefox.但所有其他浏览器,如IE,Safari,Chrom,Opera只是忽略了我的网址编码点(http://myapp/index/%2E
).
有什么建议?
bob*_*nce 21
实际上,在标准(RFC 3986)中没有明确说明百分比编码版本.
或者..
应该具有与非转义版本相同的此文件夹/向上文件夹.3.3节只讨论"路径段.
和..
",但没有说明它们是否匹配.
以及..
pct-encoding之前或之后.
我个人认为Firefox的解释%2E
并不意味着.
最实用,但不幸的是其他所有浏览器都不同意.这意味着您不能拥有仅包含.
或的路径组件..
.
我认为唯一可能的建议是"不要那样做"!还有其他的路径构件是太麻烦,通常是由于服务器限制:%2F
,%00
并且%5C
也可以通过某些Web服务器被阻塞序列的路径,和空的路径段也可能会造成问题.因此,通常不可能将所有可能的字节序列拟合到路径组件中.
归档时间: |
|
查看次数: |
94309 次 |
最近记录: |