1

我在我的数据库中存储了一个谷歌评论 URL:

https://www.google.com/search?CFID=ac59cfdf-bbad-4017-9759-e88054f3f242&CFTOKEN=0&q=njcomputerrepair%2Bbrick%2Bnj&oq=njcomp&aqs=chrome.1.69i60j69i59j69i60j69i57j0l2.2762j0j9&sourceid=chrome&ie=UTF-8#lrd=0x89c18348735c2907:0x59aa614832a36b22,3,

然后在我的应用程序中,我将该 URL 设置为一个变量,并使用 cflocation 将用户重定向到该 URL。

<cfquery name="geturl" datasource="#datasource#">
select (residential_ReviewURL) as redirectURL
from subscribers
</cfquery>

<!--- Redirect to main html redirect page --->
<cfoutput>
<cflocation url="#getURL.redirectURL#">
</cfoutput>

但是,URL 在某些时候会发生更改,因为我认为 Coldfusion 不喜欢 URL 中的字符,它会将它们替换为 % 或删除它们。因此,当用户点击 google 页面时,页面不会按应有的方式处理。

以下是重定向后 URL 的外观:

https://www.google.com/search?CFID=ac59cfdf-bbad-4017-9759-e88054f3f242&CFTOKEN=0&CFID=ac59cfdf-bbad-4017-9759-e88054f3f242&CFTOKEN=0&q=njcomputerrepair%2Bbrick%2Bnj&oq=njcomp&aqs=chrome.1.69i60j69i59j69i60j69i57j0l2.2762j0j9&sourceid=chrome&ie=UTF-8#lrd%3D0x89c18348735c2907%3A0x59aa614832a36b22%2C3%2C

如何阻止 ColdFusion 更改 URL 并保持 id 与它在数据库中的存储方式完全相同?

更新

所以我发现 URLdecode 会保留字符串。这就是我所拥有的。

#urlDecode(getURL.redirectURL)#

输出如下

https://www.google.com/search?CFID=ac59cfdf-bbad-4017-9759-e88054f3f242&CFTOKEN=0&q=njcomputerrepair+brick+nj&oq=njcomp&aqs=chrome.1.69i60j69i59j69i60j69i57j0l2.2762j0j9&sourceid=chrome&ie=UTF-8#lrd=0x89c18348735c2907 :0x59aa614832a36b22,3 ,

为什么要在 URL 中添加 CFID 和 CFTOKEN 呢?我在我的 Application.CFM 中将其关闭:

<cfapplication name="yaya" 
    clientmanagement="no" 
    sessionmanagement="no" 
    setclientcookies="no" 
    setdomaincookies="no"
    sessiontimeout="#CreateTimeSpan(0,2,0,0)#" 
    applicationtimeout="#CreateTimeSpan(1,0,0,0)#"
      >
4

1 回答 1

0

为了帮助其他来这里的人:

cflocation如果我们不想添加和生成的 URL ,则addToken需要设置一个参数。noCFIDCFTOKEN

Adobe CFML 参考:https ://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-jl/cflocation.html

于 2020-08-06T07:22:55.913 回答