3

IISでIconicのIIRFURL書き換えエンジンを使用していますが、「ファンシー」URLは次のようなものです。

http://some-website.com/some-function/418/some-keyword-rich-filename.html

このURLの例は、次のものに対応しています。

http://some-website.com/some-function.asp?SOME-ID=418

ここで、some-function.aspファイル内で、ブラウザーによって要求されたページを知る必要があります。すべてのIIS変数を調べましたが、それらのいずれにも値が見つかりません/some-function/418/some-keyword-rich-filename.htmlでした。

ちなみに、301リダイレクトをブラウザに送信するには、この情報が必要です。たとえば、ブラウザが要求した場合:

http://some-website.com/some-function/418/index.html

まず、ブラウザを次の宛先に送信する必要があります。

http://some-website.com/some-function/418/some-keyword-rich-filename.html

そして、これが私が比較のために元のURLを必要とする理由です。

4

1 に答える 1

6

IIRFの場合、これはアンマングリングと呼ばれ、修飾子を使用して実現できますU

IIRFマニュアルから:

U=元のURLをサーバー変数HTTP_X_REWRITE_URLに保存します

元のURLを保持する対象に修飾子を追加するだけUです。RewriteRule例えば:

RewriteRule ^/some-function/(\d+)/(.*)$ /some-function.asp?SOME-ID=$1 [I,U,L] 

次に、ページのコードでsome-function.asp、次のように元のURLにアクセスできます(クラシックASP)。

Request.ServerVariables("HTTP_X_REWRITE_URL")
于 2011-03-25T12:48:11.253 に答える