0

私のサイトの統計を調べたところ、トラフィックの大部分が、数年前から存在していなかった従来の ASP ページへのサード パーティ リンクを介して発生していることに気付きました。

web.config に大量の urlMappings を追加するのは良い考えではないと判断したため、Intelligencia UrlRewrite を追加し、次のようにルールを追加しようとしました。

  <rewriter>
    <redirect url="^/(.*).asp$" to="~/pagenotfound.aspx?page=$1" />
  </rewriter>

このルールは機能しますが、/pagenotfound.aspx?page=someurl.asp のように、.asp = で終わる URL をすべてピックアップします。

おっとっと :)

正規表現について詳しくありませんが、疑問符文字に続く「.asp」を無視するにはどうすればよいですか?

4

2 に答える 2

2

これを試して:

  <rewriter>
    <redirect url="^/([^?]*)\.asp(\?.*)?$" to="~/pagenotfound.aspx?page=$1" />
  </rewriter>

これにより、.asp で終わるが ? を含む URL はすべて無視されます。その前に。[^?] は「? 以外の任意の文字」を意味します。「任意の文字」を意味する * の代わりに。

編集: .asp 拡張子の後にクエリ文字列を許可する追加のパターンを追加しましたが、その前には許可しません。

于 2009-08-01T12:08:31.880 に答える
0
<rewrite url="^~/browse/([^/.]+)\.aspx?$"
 to="~/browse-prints.aspx?dispCat=$1"/>

<rewrite url="^~/browse/([^/.]+)\.aspx(\?.*)?$"
 to="~/browse-prints.aspx$2&amp;dispCat=$1"/>
于 2009-12-16T10:06:45.233 に答える