English 中文(简体)
随着冷聚,你如何处理动态产生的URLs?
原标题:With Coldfusion, how do you handle dynamicaly generated URLs?

(最新情况:我把这个问题变成一个社区基点,因为答案似乎比我觉得更主观。) 有多种答案取决于一种需要。

如果我有一个只包括应用、cfc和指数的夹子,那么处理动态产生的URLs的快速可靠方法是什么? i.e. URLs没有相应的物理卷宗。

这个例子会产生404个,但是它应当把一页放在一页的 d子上,然后通过索引。

http://www.myserver.com/cfdemo/mynewpage.cfm

在申请中使用onMissingTemplate()。 cfc 处理失踪档案? 由于这一方法对RequestStart()、Request()和RequestEnd()进行了处理,我想知道是否应当避免这种做法。

或者,我可以制定国际空间研究协会的规则,因为Im使用国际宇宙航行联合会(或改用阿帕奇语改写)

# IF the request is not /index.cfm, doesn t exist and ends in cfm or html,
# rewrite it. Pass the requested filename $1.$2 as the 1st param: cgi.page
# append the remaining url params $4 ($3 is the ?)
RewriteCond %{SCRIPT_NAME} ^(?!/index.cfm)(.*)$
RewriteCond %{REQUEST_FILENAME}     !-f
RewriteCond %{REQUEST_FILENAME}     !-d 
RewriteRule ^/(.*).(cfm|html)(??)(.*)$   /index.cfm?page=$1.$2&$4 [I,L]

这些方法是否适当,或我是否缺乏实现这一目标的更好方法? 看来,冷聚应当把这种特征纳入应用中。 Maybe 我刚才没有。

最佳回答

在网络服务器一级,旋转板没有任何错误。 我就此投票。

问题回答

因为按违约计算,CF仅处理点/点要求,在申请开始时可以处理。 c 类似情况:

<cfif Right(cgi.SCRIPT_NAME, 9) NEQ "index.cfm">
    <!--- analyze the SCRIPT_NAME and start processing --->
</cfif>

使用网络服务器配置的其他档案类型是我所能看到的唯一途径。 但是,你不制定重写规则,就可尝试使用404名处理器。 至少当使用国际数据系统时,你就能够把情况带入巨头。 查询:如果建立问世网页,请上404.cfm。 (无需存在)和在<><><>前>进行检查:

<!--- trap 404 requests triggered by IIS --->
<cfif right(cgi.SCRIPT_NAME, 7) EQ "404.cfm">
    <cflog file="mylogfile" text="404 error triggered by IIS. Context: #cgi.QUERY_STRING#">
</cfif>

阿帕奇有可能使用以下手稿,但我不敢肯定,你是否能够在此案中提取情况:

ErrorDocument 404 /404.cfm

如果你为欧洲空间法中心提供这种服务,我提供两点意见。

首先是,随着时间的推移,它们的作用越来越小。 例如,谷歌认识到,URLs需要列入查询数据。

其次:联邦家庭福利基金可以以托管人身份/档案/文件/文件/文件/文件/文件/文件/文件/文件2的形式从本地处理。 Ray Camden s BlogCFC,例如,这种工程。 它是在CF8中默认的,但需要在CF7中实现。 我没有这方面的大量信息,但谷歌(或Bing,或不管怎样)很容易。

如果你允许的话,我就试图将URLs转换成:

http://www.myserver.com/cfdemo/mynewpage.cfm

:

http://www.myserver.com/cfdemo/mynewpage OR
http://www.myserver.com/index.cfm/cfdemo/mynewpage

因此,你不会失去/code>方法。 第一个工作只能在网络服务器一级进行,例如阿帕奇或国际数据系统。 第二种做法是在刚刚结束的将来。 见:

否则,如果你最终必须具备<代码>.cfm,你就可以在阿帕奇或阿帕奇特使用“URL”螺旋式包裹,将其删除,然后将请求转交一页,或由你对onMissingTemplate做些什么。 我试图选择一种解决办法,其中不涉及失去/code>方法,而是涉及你们。

我肯定会重写。 这不仅是一种更可预测、更普遍的做法,而且会减少来自CF服务器的大量铺设层的负荷。 此外,它使CF公司能够处理向真实档案提出的要求,从而使申请启动、申请启动和其他活动受益。

除此以外,我个人总是发现URLs,如: 此外,在档案延期或拖拉中均未终止的URLs(如/foo/bar)在技术上不正确(每部旧的固定工场公约至少应如此),而且可能也应避免。 我也感到奇怪的是,本·多姆的断言是,“第一种是,随着时间的推移,这些问题越来越少。 例如,谷歌承认URLs需要包括查询数据。 在我的经验中,我实际上认为情况恰恰相反。





相关问题
JQuery AJAX .load - flash chart doesnt load in IE

An IE issue has me completely stumped. I have a coldfusion page that uses JQuery s AJAX .load function to load in a new flash file that is generated by coldFusion s cfchart tag. This works completely ...

Best Coldfusion Library for OpenID [closed]

I am getting ready to start a project that requires using OpenID within Coldfusion 8. I have found a number of different options and was wondering what has worked the best, get s the most support, ...

Find ColdFusion Generated ID

Is there a way to find the elements generated by ColdFusion s <CFLayout> and <CFLayoutArea> tags? These tags: <cflayout type="tab" name="MyAccount"> <cflayoutarea name="...

ColdFusion COM error

I am upgrading from CF4.5 to CF8. Calls to COM dll s that used to work in version 4.5 now throw a "Complex object types cannot be converted to simple values.." error. The COM object has a few arrays ...

What s the best way to write engine-specific CFML code?

Sometimes it is necessary to write different code for Adobe ColdFusion vs Railo vs OpenBD, due to differences in implementation. Do people have a specific method that they use for this? For example, ...

热门标签