标签: cflocation

301重定向的cflocation vs cfheader

我正在"重命名"我正在处理的项目的现有文件.为了保持向后兼容性,我将保留cfm文件以将用户重定向到新用户.

  • buy.cfm:老了
  • shop.cfm:new

为了尽可能保持一切清洁,我想在用户试图去buy.cfm时发送301状态码响应.

我知道我可以使用cflocationstatuscode属性

<cflocation url="shop.cfm" statuscode="301" addtoken="false">
Run Code Online (Sandbox Code Playgroud)

或者我可以使用cfheader标签.

<cfheader statuscode="301" statustext="Moved permanently">
<cfheader name="Location" value="http://www.mysite.com/shop.cfm">
Run Code Online (Sandbox Code Playgroud)

是否有任何理由使用一种方法而不是另一种方法?

coldfusion redirect cflocation

8
推荐指数
2
解决办法
7692
查看次数

使用ColdFusion重定向到UTF-8 URL

我正在开发一个在URL的文件夹名称中使用UTF-8字符的系统.导航到这些URL没有问题,一切都按预期工作 - 除非在网站上发布重定向到另一个页面; 因此浏览器似乎编码扩展字符.

举个例子,我试图重定向到以下相对URL:

/geschäft/käfer/ 
Run Code Online (Sandbox Code Playgroud)

如果我直接在地址栏中访问该URL,则没有问题.但是,如果我更改位置标题以将浏览器重定向到此URL,则最终会:

/gesch%E4ft/k%E4fer/
Run Code Online (Sandbox Code Playgroud)

如果我查看原始页面的响应标题(它是301重定向到翻译的内容),我可以看到这个条目:

Location:/geschäft/käfer/
Run Code Online (Sandbox Code Playgroud)

似乎正确的细节在标题中结束,但浏览器的地址栏显示上面详述的%E4的编码值.我尝试了各种方法将URL输入到位置标题中,但所有方法都得到了相同的结果.

我在Chrome 37.0.2062.120 m和Firefox 32.0.2上看到了这种行为.

这是在一个开发盒上运行,Windows 7 Home with IIS7.5

编辑: 似乎这个问题可能与ColdFusion直接相关.如果我使用Javascript重定向到网址,这可行......但需要注意的是文件必须与BOM一起保存.如果我使用cflocation,或者如果我使用pagecontext手动插入标题,则无论是否存在BOM,问题都会持续存在.

我还注意到使用的类似问题,cfinclude除非使用BOM保存调用模板,否则这些扩展字符显示不正确.

coldfusion redirect header utf-8 cflocation

6
推荐指数
1
解决办法
404
查看次数

为什么cflocation addtoken的默认值不等于no?

有没有什么好的理由为什么这个标签的默认值是肯定的?似乎应该几乎总是不行.我错过了什么?

coldfusion url-rewriting default-value cflocation

6
推荐指数
1
解决办法
1631
查看次数

使用CFLocation重定向到新选项卡 - CF9

有没有办法通过使用CFLocation将用户重定向到新窗口?据我所知,你不能target=_blank在CFLocation中使用.还有另一种方法吗?

这是我的代码:

    <cfif cgi.PATH_INFO eq "/procedure-page.cfm">
       <cflocation url="http://www.example.com/example/example.cfm?id=XXXXXX&contactid=#returnStruct.contactID#&doctorid=#officeLocation#" addtoken="no" >
    <cfelse>
       <cflocation url="http://www.example.com/example/example.cfm?id=#example#&contactid=#returnStruct.contactID#&doctorid=#officeLocation#" addtoken="no" >
    </cfif>
Run Code Online (Sandbox Code Playgroud)

coldfusion coldfusion-9 cflocation

3
推荐指数
1
解决办法
7902
查看次数

对于"下一步"操作,是否使用CFLOCATION好/坏做法?

我经常以下列方式设计逐步流程(即购物车):

  1. 形成自己的帖子
  2. 在帖子上,验证条目.
  3. 如果无效,则显示包含错误消息的表单.
  4. 如果有效,请保存条目(到SESSION或数据库等),然后使用将用户发送到下一步/页面<CFLOCATION />.

我的问题是,这是正确使用的<CFLOCATION />吗?看一下这个标签的定义,它似乎应该用于实际的"移动文件",考虑到它默认发送一个HTTP标头响应代码,并允许你输入另一个,如果需要的话.

在我的情况下,没有"移动的文件",我只是想在用户完成任务后将用户发送到另一个页面.如果有人要查看IIS日志,可能会产生误导,看到一堆301.

我只是在这里寻找最佳实践原则,假设我不能重新设计使用AJAX的整个过程.

coldfusion coldfusion-8 cflocation

3
推荐指数
1
解决办法
120
查看次数