打开和关闭 <cflocation> 重定向?
Turn <cflocation> redirects ON and OFF?
我有一个带有 200 多个 <cflocation>
标签的遗留 ColdFusion 系统,并且希望能够从我的 Application.cfm
.
中轻松地将它们全部关闭以进行测试
除了必须向每个文件添加条件语句之外,执行此操作的最佳方法是什么?
扩展 <cflocation>
标签以首先检查 true
/false
标志的想法浮现在我的脑海,但我以前从未做过任何先进的事情,也不知道从哪里开始。
您不能在 CF 中 extend/inherit 本机标签。您可以使用 a custom tag,然后搜索替换所有出现的 <cflocation
(本机)与 <cf_location
(自定义),其中包含您的重定向标志。
Application.cfm
<cfset APPLICATION.allowRedirects = false>
location.cfm(原生包装 cflocation
)
<!--- if the variable doesn't exist for some reason, process the regular cflocation --->
<cfif (
(not isDefined("APPLICATION.allowRedirects")) or
(isBoolean(APPLICATION.allowRedirects) and APPLICATION.allowRedirects)
)>
<cflocation attributeCollection="#ATTRIBUTES#">
<!--- cflocation ends the request automatically --->
</cfif>
<!--- print debug info --->
<cfif structKeyExists(ATTRIBUTES, "url")>
<cfoutput>Attempted to redirect to: #encodeForHtml(ATTRIBUTES["url"])#</cfoutput>
</cfif>
<!--- abort the request without redirecting --->
<cfabort>
另一种方法是 <cfmodule>
。搜索 - 用 <cfmodule template="/mytags/location.cfm"
替换所有出现的 <cflocation
。这里的优势:您不需要通过 customTagPaths
注册 location.cfm
,因为 cfmodule
通过模板路径工作。
更简单:只需一次性搜索替换所有 <cflocation>
标签并将它们包装在条件中。您无需手动查看 200 个文件。
(这是针对 Sublime Text 的,但任何合适的编辑器都可以为您完成。)
查找:(<cflocation[^>]+>)
(启用正则表达式!)
替换:<cfif APPLICATION.allowRedirects></cfif>
(</code>是反向引用,有些编辑器用<code>
代替)
我有一个带有 200 多个 <cflocation>
标签的遗留 ColdFusion 系统,并且希望能够从我的 Application.cfm
.
除了必须向每个文件添加条件语句之外,执行此操作的最佳方法是什么?
扩展 <cflocation>
标签以首先检查 true
/false
标志的想法浮现在我的脑海,但我以前从未做过任何先进的事情,也不知道从哪里开始。
您不能在 CF 中 extend/inherit 本机标签。您可以使用 a custom tag,然后搜索替换所有出现的 <cflocation
(本机)与 <cf_location
(自定义),其中包含您的重定向标志。
Application.cfm
<cfset APPLICATION.allowRedirects = false>
location.cfm(原生包装 cflocation
)
<!--- if the variable doesn't exist for some reason, process the regular cflocation --->
<cfif (
(not isDefined("APPLICATION.allowRedirects")) or
(isBoolean(APPLICATION.allowRedirects) and APPLICATION.allowRedirects)
)>
<cflocation attributeCollection="#ATTRIBUTES#">
<!--- cflocation ends the request automatically --->
</cfif>
<!--- print debug info --->
<cfif structKeyExists(ATTRIBUTES, "url")>
<cfoutput>Attempted to redirect to: #encodeForHtml(ATTRIBUTES["url"])#</cfoutput>
</cfif>
<!--- abort the request without redirecting --->
<cfabort>
另一种方法是 <cfmodule>
。搜索 - 用 <cfmodule template="/mytags/location.cfm"
替换所有出现的 <cflocation
。这里的优势:您不需要通过 customTagPaths
注册 location.cfm
,因为 cfmodule
通过模板路径工作。
更简单:只需一次性搜索替换所有 <cflocation>
标签并将它们包装在条件中。您无需手动查看 200 个文件。
(这是针对 Sublime Text 的,但任何合适的编辑器都可以为您完成。)
查找:(<cflocation[^>]+>)
(启用正则表达式!)
替换:<cfif APPLICATION.allowRedirects></cfif>
(</code>是反向引用,有些编辑器用<code>
代替)