为什么cflocation剥离字符而不访问URL?

时间:2016-11-14 16:33:03

标签: coldfusion coldfusion-2016

我的网址存储为:

<cfset VisitURL = 'http://www.toysexample.com/search.aspx?searchBox=christmasgifts≠Sort=high&search=new' />

(上面的URL字符串实际上来自我无法控制的数据库字段)

当我要求cflocation访问上述网址时:

<cflocation url="#EncodeForURL(VisitURL)#" addtoken="no" />

它访问网址作为我网站中的子文件夹。所以我最终转到了网址http://www.volumeoneexample.com/http:/www.toysexample.com/search.aspx?searchBox=christmasgifts≠Sort=high&search=new

正如您所看到的,它已从http://部分删除了一个正斜杠,并将该URL作为我的网站中的文件夹附加。我不明白为什么这样做?

1 个答案:

答案 0 :(得分:3)

正如评论中所提到的,您已经过#编码&#34;。 EncodeForURL()应该只在URL参数上。

由于您无法单独检索网址和参数,因此可能能够像列表一样对待它们。

<cflocation url="#ListFirst(VisitURL,"?")#?#EncodeForURL(ListRest(VisitURL,"?"))#" />

如果事情有点不稳定,你需要做更多的操作。