2012-05-04 8 views
3

私はdasBlogからBlogEngineにブログを移動中です。 dasBlogでは、私のURLは次のようになります。 BlogEngineで一方http://pfsolutions-mi.com/blog/2008/03/08/Beyond-Compare.aspxURLをBlogEngineでリダイレクト

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

http://pfsolutions-mi.com/blog/post/2008/03/08/Beyond-Compare.aspx

2つのURLの間の唯一の違いはBlogEngineの "ポスト" サブフォルダです。

私は現在、URLからWWWを削除するためにIIS URL書き換えを使用しているので、最も簡単な解決策は、サブフォルダの追加を処理する別のルールを作成することだと思いました。私はこのようなことを試みた。

ルール名=有効 "リダイレクトブログ" = "true" をstopProcessing = "true" を

マッチURL = "^ブログ/([_ 0-9] +)/([_ 0-9] + )/([_ 0-9] +)/([_ 0-9a-z - ] +)([_ 0-9a-z - ] +)$ "

アクションタイプ="リダイレクト "url ="ブログ/post/{R:1}/{R:2}/{R:3}/{R:4}.{R:5} "redirectType ="一時的 "

ただし、古いdasBlog URLは新しい場所にリダイレクトされません。代わりに、一般的なBlogEngine 404エラーページが表示されます。

注:すべてが機能しているとわかったら、redirectTypeをPermanentに変更する予定です。

答えて

1

あなたの一致する正規表現は、このように見えるはずですか?

match url="^blog/([0-9]+)/([0-9]+)/([0-9]+)/([\w-]+)\.([a-z]+)$" 

あり日付番号には下線がとにかくありませんし、あなたの[_0-9a-z-]+「ビヨンド比較」のように大文字が含まれていません。

ので、ここで我々が持っている必要があります。

match url="^blog/([0-9]{2,4})/([0-9]{2})/([0-9]{2})/([\w-]+)\.([a-z]{3,4})$" 
:URLを= "^ブログ/数字/数字/数字/任意のワードcharacters.lowercase-文字は$"

我々はまたしてより指定することができます"01" または "11"として "08" または "2008"

  • 月と日と

    1. 年:あなたは常に持っているという仮定に基づいて

      3つのまたは4小文字の文字(HTM、HTML、PHP、ASP、ASPXなど)

    EDITと

  • ファイル語尾:私は「あなたにこれを有効にする必要がありますので、 "\ワット+"、ハイフンが含まれていないと思います[\ w - ] + "

  • +0

    申し訳ありませんが、それでも問題は解決しませんでした。私は両方の(あなたと私の)正規表現がIISマネージャのURL書き換えユーティリティで一致する式のテストを渡したので、それが "一致URL"の問題であると疑っています。 –

    +0

    たぶん、最も単純な正規表現( "^ blog /。* $ ")、問題がない場合は他の原因を探すことができますが、ほとんどの場合、書き換えられた404は間違った正規表現によって引き起こされます。 – Simon