Fusebox 5.1 では、? & に /。独自のリライタを提供する必要があります。ただし、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
以下は、開始するのに役立ちます。/index.cfm/circuit/action/ 形式の URL が必要な場合は、サーバー側の書き換え (IIS の ISAPI) を無視できます。ただし、/circuit/action/ または /blah/ が必要な場合は、サーバー側にする必要があります。
アプリケーション.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 Rewrite をインストールする
バージョン 2.0 は 3.0 とは異なるため、正しい書き換え正規表現を使用していることを確認してください。
2.0 スクリプトの例:
# Coldcourse URL Rewrite for CF
IterationLimit 0
RewriteRule ^(/.+/.+/.*\?.+\..*)$ /index.cfm/$1
RewriteRule ^(/[^.]*)$ /index.cfm/$1
Web サーバーにファイルが存在するかどうかの確認を無効にする
Web ログに 404 エラーが記録されている場合は、IIS に対してこれを行います。
- IIS マネージャーを開く
- サイトを右クリックし、[プロパティ] を選択します
- [ホーム ディレクトリ] タブをクリックします。
- [構成] ボタン (ダイアログの右下) をクリックします。
- .cfm 拡張子をクリックし、[編集] を選択します。
- 左下のチェックボックス:「ファイルが存在することを確認する」