Joe*_*e C 8 coldfusion redirect cflocation
我正在"重命名"我正在处理的项目的现有文件.为了保持向后兼容性,我将保留cfm文件以将用户重定向到新用户.
为了尽可能保持一切清洁,我想在用户试图去buy.cfm时发送301状态码响应.
我知道我可以使用cflocation与statuscode属性
<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)
是否有任何理由使用一种方法而不是另一种方法?
Hen*_*nry 12
我认为他们做同样的事情,<cflocation>更具可读性
小智 6
我在ColdFusion 9上测试了这个.
有一个主要区别,就是cflocation停止执行页面然后重定向到指定的资源.
停止当前页面的执行并打开ColdFusion页面或HTML文件.
所以你需要这样做:
<cfheader statuscode="301" statustext="Moved permanently">
<cfheader name="Location" value="http://www.example.com/shop.cfm">
<cfabort>
Run Code Online (Sandbox Code Playgroud)
得到相当于这个:
<cflocation url="shop.cfm" statuscode="301" addtoken="false">
Run Code Online (Sandbox Code Playgroud)
否则,如果在cfheader标记之后运行其他代码,则可能会遇到问题.我在修复一些代码时遇到了这个问题,其中重定向被插入到application.cfm文件中 - 使用cfheader - 而不会中止其余的页面处理.
我还注意到,在响应标头中,cflocation还相应地设置了以下标头:
Cache-Control: no-cache
Pragma: no-cache
Run Code Online (Sandbox Code Playgroud)
如果需要,可以使用带有位置的cfheader标记添加这些标头:
<cfheader name="Cache-Control" value="no-cache">
<cfheader name="Pragma" value="no-cache">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7692 次 |
| 最近记录: |