1

iis.netの記事「Creating Rewrite Rules for the URL Rewrite Module」を読み、URLからいくつかのセグメントを削除したいと考えています。

たとえば、次から:

/article/archive/2289/01/articleid/191/reftab/36/word1 word2 word3

に:

/article/articleid/191/word1-word2-word3

これで web.config ファイルを変更しましたが、問題を解決できません:

<rewrite>
  <rules>
    <rule name="Remove segments">
      <match url="^article/archive/2289/01/([0-9]+)/([_0-9a-z-]+)" />
      <action type="Rewrite" url="article/articleid/{R:1}/{R:2}" />
    </rule>
  </rules>
</rewrite>
4

1 に答える 1

0

あなたはそれを逆行しようとしているようです。この<match>要素は、わかりやすいURL(ユーザーがブラウザーに入力するURL、リンクに含まれるURL、およびIISが受信するURL)を表します。

この<action>要素は、わかりにくいURLを表します。これは、書き換えモジュールを使用していなかった場合に使用する必要のある醜いURLです

<match url="^article/articleid/([0-9]+)/([_0-9a-z-]+)" />
<action type="Rewrite" url="/article/archive/2289/01/articleid/{R:1}/reftab/36/{R:2}" />

ここでの問題は、おそらくハードコーディングしたくないということです2289/01よね?それをわかりやすいURLに組み込むか、これらの番号なしでリクエストを処理できる中間ハンドラーを考え出す必要があります。

于 2012-11-09T23:59:38.560 に答える