Domanda

Cfwheels ha il Urlfor () Funzione per ottenere l'URL interno in base agli argomenti forniti. C'è un modo per ottenere l'URL interno senza fornire argomenti?

Ad esempio: dato che un utente naviga a "http://somedomain.com" o "http://somedomain.com/about/" o "http://somedomain.com/contact/" È un metodo come RewrittttenLl ( ) che restituisce qualcosa come "/" o "/circa/" o "/contact/"?

Utilizzando URLFOR () senza argomenti restituisce "/home/indice" o "/about/indice" o "/contact/indice".

Cgi.script_name returns "/rewrite.cfm"

Ovviamente con JavaScript usando document.location.href posso ottenere quello che sto cercando.

È stato utile?

Soluzione

Cgi.path_info ha il valore che stai cercando?

modificare

All'inizio, ho eliminato questo post, essendo assolutamente confuso. Ora ho eseguito un piccolo test: ho scaricato gli ultimi file core Wheels (1.1.6), estratto su un IIS 7.5 (con il modulo di riscrittura URL installato) + CF9 WebServer e modificato il file "Web.config" nel core root, impostazione "anabled = 'true'" per la regola di riscrittura. Inoltre, dal momento che stavo eseguendo questo esempio da una sottocartella, ho cambiato il percorso da "/rewrite.cfm" a "Rewrite.cfm". Questo mi ha portato al punto in cui sono stato in grado di richiedere con successo URL come questo:

http: // server/wheelstest/ruote/ruote

Da qui ho modificato il layout.cfm in vista/ruote, aggiungendo:

<cfdump var="#cgi#">

Quando quindi richiedo l'URL sopra (/Wheelstest/Wheels/Wheels), vedo la discarica per l'ambito CGI. Under path_info, questo è il valore: /ruote /ruote.

Successivamente, ho aggiunto un file "index.cfm" vuoto in visualizzazioni/ruote.

Quando richiedo/Wheelstest/Wheels, ottengo questo per path_info: "/Wheels".

Quando richiedo/WheelStest/Wheels/, ottengo questo per path_info: "/Wheels/".

Quando richiedo/WheelStest/Wheels/Index, ottengo questo per path_info: "/Wheels/Index".

Quando richiedo/WheelStest/Wheels/Index/, ottengo questo per path_info: "/Wheels/Index/".

Quindi in pratica - cgi.path_info sta facendo per me esattamente quello che descrivi che vuoi. Cosa c'è di diverso nella tua configurazione rispetto al mio, in modo che non stia restituendo quel valore per te?

Altri suggerimenti

Potrebbe esserci un modo migliore per farlo ... ma eccomi comunque

Ogni pagina viene inviata il #params #

    <cfdump var="#params#">
    <cfoutput>#params.action#/#params.controller#/#params.key#</cfoutput>
    <cfabort>

Prova a metterlo in un controller e vedi i risultati

Il problema è che se gli oggetti all'interno del params L'oggetto non esiste un errore. Quindi il percorso che viene generato deve verificare se la chiave struct esiste e modifica di conseguenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top