3

私は誰かがURLでApplication.cfcを与えるかもしれないシナリオを考えています。これはColdFusionエンジンによって予約されているため機能せず、ユーザーにはエラーが表示されます。

そのようなシナリオでユーザーをリダイレクトすることは可能ですか?

4

3 に答える 3

3

サイト全体のエラーハンドラーで正常にキャッチしました。それはあなたにとって実行可能な解決策ですか?

小さな更新、これを理解しました:

<cftry>
    <cfif error.Message EQ "Invalid request of Application.cfm, Application.cfc, or OnRequestEnd.cfm file.">
        <cflocation url="#getContextRoot()#/#getDirectoryFromPath(error.Template)#">
    </cfif>
    <cfcatch>that didn't work</cfcatch>
</cftry>
于 2012-11-30T22:58:24.890 に答える
1

CFは、エラーを取得できる位置で、application.cfc、application.cfm、およびonrequestend.cfmへの呼び出しをインターセプトすると思います。

コールドフュージョン開発サイトの1つでテストを行い、application.cfcを定義済みのIIS Webサイトのホームフォルダーの前に親フォルダーに移動して、ファイルを呼び出そうとしました。ファイルが見つからない場合は404エラーが返されました。coldfusionはルートフォルダーまで検索してファイルを見つけるため、IISアクセス可能なフォルダーにない場合でも、application.cfcファイルを検索します。IISは、直接リクエストに対して404エラーを返します。

あなたの404エラーを処理することはおそらく解決策です。

これは、Windows以外のサーバー環境でも解決策になると思います。

于 2012-11-30T21:26:03.847 に答える
1

ええと:あなたはあなたのウェブサイトで捕らえられなかったエラーを処理するのと同じ方法でこの種のエラーを処理するべきです:それをonError()ハンドラー/<cferror>コード/サイト全体のエラーテンプレートに任せてください。Application.cfcを使用しているため、ここではonError()が最適なアプローチです。

この種のエラーは特別な処理を必要としませんが、どのタイプの未処理のエラーも適切に処理する必要があります。あなたがこれをしていないのなら(あなたはそうではないように聞こえます)、あなたはそうすべきです。

于 2012-12-01T10:22:09.693 に答える