2011-01-31 17 views
0

を書き換えないでください。 「; JSESSIONID = null」の私のページを呼び出すときにIISでエラーが発生したトークン私は第3部のautenticationページからURLを受け取るためのルールを構築するために必要URL:サーバーは、私は、URL書き換えモジュールを使用して、私のIIS 7.0サーバーにURLを書き換えしようとしているが、そのは動作していない

。私は "; jsessionid = null"文だけを削除しようとしています。私は私のアプリケーション(preceeding question)にURLクエリステートメントが必要です。

私はこのルールを書いた:

パターン:

(http://.*);jsessionid=null(.*) 

処置:

{R:1}{R:2} 

私はパターンをテストする場合、結果はOKです。しかし、実際には、書き換えモジュールがないように何も起こりません。 Web.configファイルでは、すべての権利のようだ:

<system.webServer> 
     <modules runAllManagedModulesForAllRequests="true" /> 
     <rewrite> 
      <rules> 
       <rule name="refazer_url_autenticador_df" enabled="true" patternSyntax="ECMAScript" stopProcessing="false"> 
        <match url="(http://.*);jsessionid=null(.*)" /> 
        <action type="Rewrite" url="{R:1}{R:2}" logRewrittenUrl="true" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 

トークンは、エラーが発生し、IIS、URLのとき:

404 - File or directory not found. 

    The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable. 

トークンなし(URLを手動で書き直さ)、そのつもりがあること大丈夫。

どういうところが間違っていますか?多分ルール、おそらく別のISSの設定?

ありがとうございます!

答えて

2

あなたがより良い何が起こっているか、あなたがテスト・パターンのUIでテストする必要があり、実際の値の特定に理解するために失敗した要求トレースを使用する必要があります。参照:Failed Request Tracing for URL Rewrite

私の推測では、MatchのURLは決してHTTPプロトコルを含んでいませんが、代わりにサイトのルートから始まります。また、JSessionidはクエリ文字列の一部ですか?そうであれば、条件内でそのQUERY_STRINGを取得するために条件を使用する必要があります。最後に、最終結果に、HTTPではなく、サイトのルートで始まるURLのみが含まれていることを確認します。これは、別のサーバー/アプリケーションプールにルーティングする場合にのみ必要ですが、マシンにApplication Request Routing(ARR)がインストールされている必要があります。

+0

これは機能します。それは...私はルールを "(。*); jsessionid = null(。*)に変更したので、モジュールはURLを正しく書き換えています。問題はHTTPでした。 – Alex

関連する問題