我正在尝试获取页面当前网址的一部分,但我不知道该怎么做。例如:当前页面网址为http://www.myurl.com/us/en/。我需要从网址获取的是/ us / en /。或者“http://www.myurl.com/us/en/”也可以。 任何帮助都会非常感激。 谢谢!
答案 0 :(得分:0)
该信息包含在ColdFusion服务器的CGI
变量范围内。如果你" dump"你可以看到该范围内的所有可用信息。它出来了。
<cfdump var="#cgi#">
或以脚本语法
<cfscript>
writedump(cgi);
</cfscript>
只需将其放在CFML文件中并查看输出即可。
我认为您想要的内容包含在cgi.CF_TEMPLATE_PATH
和cgi.PATH_TRANSLATED
字段中。
文档参考 - CGI environment (CGI Scope) variables
我创建了一个快速的代码片段,可以满足您的需求。 Check it out here
<cfscript>
info=replace(cgi.path_translated,cgi.script_name,'/');
writeOutput(info);
writeDump(cgi);
</cfscript>
答案 1 :(得分:0)
这取决于文件夹是否确实存在。如果您正在使用网址重写...
<!--- IIS7 --->
<cfif CGI.HTTP_X_ORIGINAL_URL neq ''>
<cfset urlStrings = listToArray(spanExcluding(CGI.HTTP_X_ORIGINAL_URL,"?"), "/")>
</cfif>
<!--- ISAPI_rewrite --->
<cfif CGI.HTTP_X_REWRITE_URL neq ''>
<cfset urlStrings = listToArray(spanExcluding(CGI.HTTP_X_REWRITE_URL ,"?"), "/")>
</cfif>
之后,您可以将url用作数组。
<cfloop from="1" to="#arraylen(urlStrings)#" index="u">
<!--- THE QUERY --->
<cfquery name="test" dbtype="query" maxrows="1">
SELECT id, title, menuTitle, h1
FROM application.allNav
WHERE
urlname = '#urlStrings[u]#' AND
active = 1
</cfquery>
...
但是要获取文件夹名称(假设IIS):
<cfoutput>#spanExcluding(CGI.HTTP_X_ORIGINAL_URL,"?")#</cfoutput>