1

Fusebox 5.1 noxml で検索エンジンの安全な URL を作成するにはどうすればよいですか?

たとえば、これが欲しい: http://www.site.com/index.cfm/app.welcome/

これの代わりに: http://www.site.com/index.cfm?fuseaction=app.welcome

Fusebox 5.1 ではこれができると思われます。この記事を読みましたが、xml バージョンにのみ適用されます。私はほとんど何も知らないので、どこから始めればよいかわかりません。fusebox の noxml バージョンを使用するにはどうすればよいですか?

更新:これを Application.cfc ファイルに追加する必要があるようです。まだ動作していませんが...

FUSEBOX_PARAMETERS.myself = "index.cfm/fuseaction/";
FUSEBOX_PARAMETERS.queryStringStart = "/";
FUSEBOX_PARAMETERS.queryStringSeparator = "/";
FUSEBOX_PARAMETERS.queryStringEqual = "/";
4

2 に答える 2

1

riaforge is your friend:

http://coldcourse.riaforge.org/

于 2009-04-13T17:36:05.043 に答える
1

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 に対してこれを行います。

  1. IIS マネージャーを開く
  2. サイトを右クリックし、[プロパティ] を選択します
  3. [ホーム ディレクトリ] タブをクリックします。
  4. [構成] ボタン (ダイアログの右下) をクリックします。
  5. .cfm 拡張子をクリックし、[編集] を選択します。
  6. 左下のチェックボックス:「ファイルが存在することを確認する」
于 2009-04-16T00:48:44.410 に答える