Mic*_*cah 2 coldfusion cfwheels coldfusion-9
CFWheels具有URLFor()函数,用于根据提供的参数获取内部URL.有没有办法获得内部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 Rewrite模块)+ CF9 webserver,并编辑了核心中的"web.config"文件root,为重写规则设置"enabled ='true'".此外,由于我从子文件夹运行此示例,我将路径从"/rewrite.cfm"更改为"rewrite.cfm".这让我能够成功地请求这样的网址:
从这里开始,我在views/wheels下编辑了layout.cfm,添加:
<cfdump var="#cgi#">
Run Code Online (Sandbox Code Playgroud)
当我然后请求上面的URL(/ wheelstest/wheels/wheels)时,我看到了cgi范围的转储.在path_info下,这是值:/ wheels/wheels.
接下来,我在views/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正在为我完成你想要的描述.您的设置与我的设置有什么不同,以至于它没有为您返回该值?
| 归档时间: |
|
| 查看次数: |
534 次 |
| 最近记录: |