CFWheels具有URLFor()函数,用于根据提供的参数获取内部URL。有没有办法提供内部网址而不提供任何参数?

例如:
给定用户导航到“ http://somedomain.com”或“ http://somedomain.com/about/”或“ http://somedomain.com/contact/”,是否存在类似ReWrittenURL()的方法返回像“ /”或“ / about /”或“ / contact /”之类的东西?

使用不带参数的URLFor()会返回“ / home / index”或“ / about / index”或“ / contact / index”。

CGI.SCRIPT_NAME返回“ /rewrite.cfm”

显然使用Javascript使用document.location.href可以得到我想要的东西。

最佳答案

CGI.path_info是否具有您要查找的值?

编辑

起初,我完全迷失了这篇文章。现在,我做了一些测试-下载了最新的wheel核心文件(1.1.6),解压缩到IIS 7.5(安装了URL重写模块)+ CF9网络服务器,并在核心中编辑了“ web.config”文件root,为重写规则设置“ enabled ='true'”。另外,由于我是从子文件夹运行此示例,因此将路径从“ /rewrite.cfm”更改为“ rewrite.cfm”。这使我能够成功请求如下网址:

http://server/wheelstest/wheels/wheels

从这里,我在views / wheels下编辑layout.cfm,并添加:

<cfdump var="#cgi#">


然后,当我请求上述URL(/ wheelstest / wheels / wheels)时,我看到了cgi范围的转储。在path_info下,该值为:/ wheels / wheels。

接下来,我在视图/滚轮下添加了一个空白的“ index.cfm”文件。

当我请求/ wheelstest / wheels时,我得到了path_info:“ / wheels”。

当我请求/ wheelstest / wheels /时,我得到了path_info:“ / wheels /”。

当我请求/ wheelstest / wheels / index时,我得到了path_info:“ / wheels / index”。

当我请求/ wheelstest / wheels / index /时,我得到了path_info:“ / wheels / index /”。

所以基本上-cgi.path_info确实为我做了您所描述的想要的。您的设置与我的设置有什么不同,以致于它不会为您返回该值?

关于coldfusion - 如何获取给定页面的重写CFWheels URL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8407029/

10-11 04:41