0

IIS Rewrite Module を使用してブログ間の移行を処理し、その過程でリンクが壊れないようにしています。だから私は本当にたくさんの 301 リダイレクトを使っています。

ただし、パフォーマンスと SEO の理由から、可能な限りリダイレクトは避けたいと考えています。コードでルールを複製することでこれを行うことができます。でも、最初に聞いてみようと思いました。書き換えモジュールのルールを再利用して、リンクを前処理および再フォーマットする方法はありますか?

以下はブログのテーマからの抜粋です...

<a rel="bookmark" href="<%=Post.PermaLink %>" title="<%=Server.HtmlEncode(Post.Title) %>">Permalink</a>

これを のようなものに変更したいと思います。指定された URL で URL 書き換えルールhref="ReformatLink(Post.PermaLink)"ReformatLink実行し、新しい URL を返します。

4

2 に答える 2

1

別の方法を見つけました。BlogEngine.Core を変更することで、必要なリンク形式を正確に作成できます。Post.cs 内では、単にプロパティPermaLinkを変更しRelativeLink、古いブログ ソフトウェアのリンク構造を反映させます。

何かを見逃した場合に備えて、書き換えモジュールのルールはそのままにしておきます。しかし、これで問題は解決したようです。

于 2012-08-13T18:40:58.057 に答える
0

私はこのライブラリhttp://www.iis.net/download/urlrewriteを使用しており、以下のようなことをしています。

    <rule name="FolderAndNoQueryString" stopProcessing="true">
      <match url="^([^/]+)/([^/]+)/?$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <!--  The following condition prevents rule from rewriting requests to .axd files -->
        <add input="{URL}" negate="true" pattern="\.axd$" />
      </conditions>
      <action type="Rewrite" url="{R:1}/{R:2}.aspx" />
    </rule>

私のHTMLコードには次のものがあります。

<a href="<%=AppSettings("ApplicationPath") %>Folder/MyActualASPXPage">My Link</a>

以下に示すように、ApplicationPath は単なる通常の Web.Config キーです。

<add key="ApplicationPath" value="/MyVirtualDir/" />
于 2012-08-13T18:49:33.583 に答える