2012-01-11 13 views
3

私はhttp://learn.iis.net/page.aspx/806/seo-rule-templates/に従っています。これは、IIS7でSEOに優しいURLを作成するためのほぼ完全なガイドです。IIS7でURLを書き換えよう

でも、私は一つの問題があります。

私はwww.domain.com/contact/を書き換えるためのルールを作成する場合、私はweb.configファイルで取得する:

<rule name="RewriteUserFriendlyURL1" stopProcessing="true"> 
    <match url="^([^/]+)/?$" /> 
    <conditions> 
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="?p={R:1}" /> 
</rule> 

をしかし、その後、私はwww.domain.com/contact/send/を行うことはできません。私はwww.domain.com/contact/send/を書き換えるためのルールを作成する場合

私はweb.configファイルで取得する:

<rule name="RewriteUserFriendlyURL1" stopProcessing="true"> 
    <match url="^([^/]+)/([^/]+)/?$" /> 
    <conditions> 
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="?p={R:1}&amp;a={R:2}" /> 
</rule> 

をしかし、私は私が見ることができないwww.domain.com/contact/

ルールの両方がそうすることができません任意のスクリプト、私の/scripts//css/および/images/フォルダからのcss ogイメージ。

上記の3つのフォルダとANDとNOTの両方に一致するルールを作成するにはどうすればよいですか?

+0

誰も私にこれに答えることができますか? :/ – Behrens

答えて

3

あなたのルールは以下のようになり、このような何か(私は拡大し、理解を容易にし、最終的な編集のためにそれをコメントしています):

^ 
    (
     (?!css|scripts|images) # The directories you don't want to match 
     [^/]+     # The matched directory 
    ) 
    (
     /
     (
      ([^/]+)    # Optional part 
      /?     # Optional trailing slash 
     )? 
    )? 
$ 

次のように変換:

<match url="^((?!css|scripts|images)[^/]+)(/(([^/]+)/?)?)?$" /> 

リライト新しい正規表現のキャプチャ数が変更されたため、URLは?p={R:1}&amp;a={R:4}に更新されます。

+0

これは完璧です..ありがとう! :) – Behrens

+0

あなたは大歓迎です! –