Есть несколько способов сделать это. Вы можете использовать перезапись URL на веб-сервере, чтобы включить
http://mydomain.com/cars/ford
в
http://mydomain.com/index.cfm?mainCategory=cars&subCategory=ford
Но вы также можете сделать это в ColdFusion, если не возражаете против того, чтобы index.cfm находился в URL-адресе следующим образом:
http://mydomain.com/index.cfm/cars/ford
Если вы хотите сделать это в ColdFusion, текст после «index.cfm» помещается в переменную cgi с именем path_info, которую вы можете проанализировать следующим образом:
<cfset mainCategory = "" />
<cfset subCategory = "" />
<cfset pathInfoString = reReplaceNoCase( trim( cgi.path_info ), ".+\.cfm/? *", "" ) />
<cfset pathInfoArray = listToArray( pathInfoString, "/" ) />
<cfif arrayLen( pathInfoArray ) gte 1>
<cfset mainCategory = pathInfoArray[ 1 ] />
</cfif>
<cfif arrayLen( pathInfoArray ) gte 2>
<cfset subCategory = pathInfoArray[ 2 ] />
</cfif>
Вы можете использовать listGetAt () вместо преобразования его в массив, я просто предпочитаю выполнять операции над массивами над операциями со списками. Это reReplaceNoCase () сделано, потому что я думаю, что в некоторых случаях имя файла добавляется в начало информации о пути, но вам это может не понадобиться, если это не происходит для вас.