2

多くのアプリケーション、仮想ディレクトリ、およびいくつかのアプリケーション プールを含む asp.net サイトがあります。URL 書き換えには、Helicon ISAPI リライター バージョン 3 を使用します。異なる URL からアクセスできる 1 つのページ (「page.aspx」としましょう) があり、異なる URL は単一のクエリ文字列パラメーターに対して異なる値で書き換えます。すべての Helicon ルールはローカル環境でテストされましたが、サーバーにデプロイした後に問題が発生しました。

URL があります:

URL1: '/product-one/'
URL2: '/product-one-another-version/'

「productone」と「productoneversion」で表示される両方のページのコンテンツは完全に同じですが、最初の URL にアクセスでき、2 番目の URL には 403.18 エラーが表示されます。私が見つけたように、このエラーは、URL が 1 つのプールから別のプールに書き換えられたことを示しています。しかし、これは結局のところ同じページなのです。

これらの URL は正常に (ヘリコンおよび IIS ログで確認しました)、次の元の URL に書き換えられます:
URL1: '/folder/page.aspx?product=productone'
URL2: '/folder/page.aspx?product=productoneversion'

「製品」パラメーターには 8 つの異なるオプションがあります。param が 'productone' または 'productoneversion' の場合、ページのコンテンツは同じですが、ページの他のバージョンでは異なります。Helicon 経由で機能するのは、8 つの URL のうち 2 つだけです。残りのページでは 403.18 エラーがスローされます。しかし、クエリ パラメータが異なる元の URL を使用すると、すべてのページ バージョンが期待どおりに機能します。

設定の何が問題なのか、どうすれば修正できるのかを教えてください。

私のマシン: win 8 エンタープライズ、IIS 8
サーバー: win サーバー 2012、IIS 8

4

2 に答える 2

0

サイトまたはプール間で書き換えを行う場合、それはもはや書き換えではありません。プロキシです。したがって、ルールの最後に [P] フラグを使用する必要があります。

Helicon の最新バージョンは、最新の状態に保たれています。

于 2013-09-06T16:14:43.227 に答える
0

「2 of 8 URLs works」、「/product-one/」および「/product-four/」に気付きました。また、IIS に「product-one」と「product-four」という同じ名前の Web アプリケーションがあることにも気付きました。これらのアプリは、元のページ 'page.aspx' を含む Web アプリケーションと同じアプリケーション プールを実行しています。

そのため、必要な名前 (「product-two」、「product-three」など) を使用して IIS でさらに 6 つの Web アプリケーションを作成し、対応するアプリケーション プールを使用して、新しい空のフォルダーを指すようにしました。

これはエレガントなソリューションではありませんが、私にとってはうまくいきます。

于 2013-09-06T18:38:04.297 に答える