Você tem uma url como - http://site/index.cfm?var1=17&var2=2, mas acha que a url está muito suja, e gostaria de fazer algo a respeito.
Muitos usam recurso que está neste código, para tornar a url mais amigável.
<cffunction name="configureEscopoUrl" output="false" access="public" returntype="void">
<cfset var uVars=ListFirst(trim(cgi.path_info), '?')>
<cfset var item = "" >
<cfif listLen(uVars,"/")>
<cfloop list="#uVars#" index="item" delimiters="/">
<cfset url[listfirst(item,"_")] = "" >
<cfif listlen(item,"_") gt 1>
<cfset url[listfirst(item,"_")] = listlast(item,"_") >
</cfif>
</cfloop>
</cfif>
</cffunction>
<cfset var uVars=ListFirst(trim(cgi.path_info), '?')>
<cfset var item = "" >
<cfif listLen(uVars,"/")>
<cfloop list="#uVars#" index="item" delimiters="/">
<cfset url[listfirst(item,"_")] = "" >
<cfif listlen(item,"_") gt 1>
<cfset url[listfirst(item,"_")] = listlast(item,"_") >
</cfif>
</cfloop>
</cfif>
</cffunction>
executando esta função no começo do Application.cf(c/m), sua url pode ser executada tanto da primeira forma, como também: http://site/index.cfm/var1_1/var2_2
4 comentários:
Olá fiz testes com esse código e obtive sucesso, porém um detalhe me chamou a atenção, ao utilizar links relativos os mesmos perdem o apontamento (por exemplo css ou js).
geralmente os estilos estão em /css ou http://site/css, você pode chamar assim src="/image/logo.gif", eu prefiro criar uma variável que contenha os caminhos, e na construção do html chamo o caminho completo.
<cfset application.paths = structnew() >
<cfset application.paths.image = "http://site/image/" >
<cfset application.paths.css = "http://site/css/" >
<cfset application.paths.js = "http://site/js/" >
<cfoutput><img src="#application.paths.image#logo.gif" ></cfoutput>
[]s
Olá amigo, esse problema se resolve facilmente colocando a pasta relative na tag BASE dentro do HEAD do html, por exemplo:
<base href="http://www.site.com/" />
Com isso, todos os links, imagens e scripts são carregados com referência à esta base que você predefiniu.
Abraços!
Valeu Ric!
[]s
Postar um comentário