是否有最好的方法来评估URL变量以确定适当的页面?

时间:2011-12-28 17:32:30

标签: url coldfusion

我正在使用ColdFusion 9.0.1。

我有一个新的网站,它使用Bikes.cfm和Makers.cfm作为模板页面。我需要能够将BikeID和MakerID与其他变量一起传递给这两个页面。我不想在URL中使用实际页面名称,例如:

MyDomain.com/Bikes.cfm?BikeID=1234&MakerID=1234

我希望我的网址看起来更像这样:

MyDomain.com/?BikeID=1234&MakerID=1234

我不需要在网址中指定网页名称。

我希望这两个网址能够访问不同的数据:

MyDomain.com/?BikeID=1234&MakerID=1234 // goes to bike page
MyDomain.com/?MakerID=1234&BikeID=1234 // goes to maker page

因此,如果在MakerID之前的URL中出现BikeID,请转到Bikes.cfm页面。如果MakerID出现在BikeID之前,请转到Makers.cfm页面。

是否有一种简单而现有的方法来安排URL密钥,使它们指向适当的页面?

我应该只是将URL解析为列表并确定第一个ID并转到相应的页面吗?还有更好的方法吗?

任何想法或提示或想法都将不胜感激。

更新 - 由于以下原因,使用网址中的参数顺序肯定是个坏主意:

1)许多程序将变量附加到URL
2)某些程序可能会对变量进行重新排序 3)GoogleBot可能不会认为订单相关,并且很可能不会正确索引网站。

感谢所有以积极的方式提供建议的人,我的方法可能是一个坏主意,不会产生我想要的结果。感谢所有提出替代方法以产生我想要的结果的人。

如果你们中的任何一位积极的人愿意将你们的积极评论/建议作为答案,我很乐意接受它作为答案。

1 个答案:

答案 0 :(得分:1)

尽管我对整个想法表示严重的疑虑,但如果我被迫这样做,我会怎么做:

index.cfm:

<cfswitch expression="#ListFirst(cgi.query_string, '=')#">

  <cfcase value="BikeID">
     <cfinclude template="Bikes.cfm">
  </cfcase>

  <cfcase value="MakerID">
     <cfinclude template="Makers.cfm">
  </cfcase>

  <cfdefaultcase>
     <cfinclude template="Welcome.cfm">
  </cfdefaultcase>

</cfswitch>