2016-11-11 4 views
0

IISの書き換えルールに特定の正規表現パターンを書き込もうとしています。文字列の最後のインスタンスと最後のインスタンスの後に数字だけがあるかどうかを確認します

URLは次のようなものになります。

somesite.com/somepath/34343.aspx

を私は somesite.comを持つことができるように私が唯一のセクション34343の中の数字を持っているかどうかを確認する必要があります/somepath/something343.aspx

私はそうのようなパターンにマッチしようとしている:。
([0-9] *)のaspx $
しかし、これは後者のURLをピックアップし、以降の試合が上がらないように、ルールの処理を停止し実行しないでください。それ以降のルールを実行し、処理を停止する必要はありません。 。

誰でも助けることができるのであれば、私は最後の最後のスラッシュの後に、最後の前に数字を持っているかどうかを確認するためにいくつかの方法が必要です(ドット)

また、私はこれを試してみました:(。) /(。)それがグループ化された試合私に与えている限り、私は、欲しいものを私に与えているようだ 。(*):

  • 全Match-が
  • グループ1をsomesite.com/somepath/34343.aspx - somesite.com/somepath
  • グループ2 - 34343
  • グループの3- ASPX

しかし、私は数字のみのためにそのテキストを確認し、その後に、グループ2を使用する方法がわかりませんか?

誰でも助けてください。

おかげ

EDIT

回答のおかげで、これら二つのパターンが私のために働いていません。私はそれらをIISのURL書き換えツールに接続し、どちらかといえば素晴らしいテストパターンオプションは、一致していると言っていますが、ルールは起動しません。

<rule name="Ignore id with aspx" enabled="true" stopProcessing="true"> 
    <match url="^(.*\/\d+\..+)$" ignoreCase="true" /> 
    <!--OR--> 
    <match url="^.*\/\d+\.[^.]+$" ignoreCase="true" />   
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
</rule> 

少なくとも、後続のルールは処理を停止しません。

偶然、ルール私は([0-9] *)を使用していたと言っています。aspx $は起動し、その後のルールの処理を停止します。

+0

['^。*/\ d + \。[^。] + $'](https://regex101.com/r/V08NkK/1) –

答えて

0

助けてくれてありがとうございましたが、私はそれがルールを撃っていない理由を理解することができました。

私は失敗した要求追跡ルールを設定し、そのルールが基本URLをチェックから除外したことに気づいたhttp://somesite.com/。だから、それはURLの最後のビットを探していただけだった。

問題のUrlがhttp://somesite.com/12345.apsxであったため、リクエスト内の数字と.aspxを確認するのは簡単でした。

<rule name="Ignore id with aspx" enabled="true" stopProcessing="true"> 
    <match url="^\d*\..+[aspx]" ignoreCase="true" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
    <action type="None" /> 
</rule> 
0

あなたは、このように正規表現を行うことができます。

(.*\/)+(\d*\..+) 

それは数字のみが含まれている場合、これはチェックします。

関連する問題