Fusebox 5.1 позволяет использовать URL-адреса SES, позволяя вам изменять? & к /. Вы все еще должны предоставить свой собственный переписчик. Однако, если вам удастся обновить систему до версии 5.5, возможно, она также выполняет переписывание.
Пример перезаписи
http://www.fusebox.org/forums/messageview.cfm?catid=31&threadid=6117&STARTPAGE=2
<cfscript>
// SES converter
qrystring = ArrayNew(1);
if ( Find("/",cgi.path_info) eq 1 and Find("/#self#",cgi.path_info) eq 0 ) {
qrystring = cgi.path_info;
} else if ( Len(Replace(cgi.path_info,"#self#/","")) gt 0 ) {
qrystring = ListRest(Replace(cgi.path_info,"#self#/","#self#|"),"|");
} else if ( FindNoCase("#self#/",cgi.script_name) gt 0 ) {
qrystring = ListRest(Replace(cgi.script_name,"#self#/","#self#|"),"|");
}
arQrystring = ListToArray(cgi.path_info,'/');
for ( q = 1 ; q lte ArrayLen(arQrystring) ; q = q + 2 ) {
if ( q lte ArrayLen(arQrystring) - 1 and not ( arQrystring[ Q ] is myFusebox.getApplication().fuseactionVariable and arQrystring[ q+1] is self ) ) {
attributes['#arQrystring[ Q ]#'] = arQrystring[ q+1];
}
}
</cfscript>
Если вы решите использовать Coldcourse ...
http://coldcourse.riaforge.com
Ниже поможет вам начать. Вы можете игнорировать перезапись на стороне сервера (ISAPI для IIS), если хотите отформатировать URL в /index.cfm/circuit/action/. Но если вы хотите / circuit / action / или / blah /, вам нужно сделать это на стороне сервера.
Application.cfc
Поставить onApplicationStart (или onRequestStart для тестирования) для помещения в память.
<cfset application.coldcourse = createObject("component","components.util.coldcourse").init("/config/coldcourse.config.cfm")>
index.cfm
Поместите это до того, как каркас загрузит
<cfset application.coldcourse.dispatch(cgi.path_info, cgi.script_name) />
coldcourse.config.cfm (пример конфигурации)
<cfset setEnabled(true)>
<cfset setFrameworkEvent("action")>
<cfset setFrameworkSeparator(".")>
<cfset setFrameworkActionDefault("")>
<cfset setUniqueURLs(true)>
<cfset setBaseURL("http://www.mysite.com/index.cfm")>
<!--- CUSTOM COURSES GO HERE (they will be checked in order) --->
<!--- for http://www.mysite.com/about/ pages --->
<cfset addCourse("components")>
<cfset addCourse(pattern="about",controller="main",action="about")>
<cfset addCourse(pattern="contact",controller="main",action="contact")>
<cfset addCourse(pattern="help",controller="main",action="help")>
<!--- If nothing else matches, fall back to the standard courses (you probably shouldn't edit these) --->
<cfset addCourse(":controller/:action/:id")>
<cfset addCourse(":controller/:action")>
<cfset addCourse(":controller")>
Установка перезаписи ISAPI
Убедитесь, что вы используете правильное регулярное выражение перезаписи, поскольку версия 2.0 отличается от 3.0.
Пример для скрипта 2.0:
# Coldcourse URL Rewrite for CF
IterationLimit 0
RewriteRule ^(/.+/.+/.*\?.+\..*)$ /index.cfm/$1
RewriteRule ^(/[^.]*)$ /index.cfm/$1
Отключить проверку наличия файла на веб-сервере
Сделайте это для IIS, если в ваших веб-журналах появляется ошибка 404.
- Открыть диспетчер IIS
- Щелкните правой кнопкой мыши по сайту и выберите Свойства
- Перейдите на вкладку Домашний каталог
- Нажмите кнопку Конфигурация
(нижний правый угол диалога)
- Нажмите расширение .cfm и выберите
'Edit'
- Нижний левый флажок: «Проверьте, что
Файл существует "