簡體   English   中英

IIS 7.5 URL重寫模塊以重新格式化鏈接?

[英]IIS 7.5 URL Rewrite Module to Reformat Links?

我正在使用IIS重寫模塊來處理博客之間的遷移,以便在此過程中不會斷開任何鏈接。 因此,我實際上只是使用了很多301重定向。

但是,出於性能和SEO的原因,我想盡可能避免重定向。 我可以通過在代碼中復制規則來做到這一點。 但是我想我先問一下。 有沒有一種方法可以重用重寫模塊的規則來預處理和重新格式化鏈接?

以下是博客主題的摘錄...

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

我想將其更改為href="ReformatLink(Post.PermaLink)" ,其中ReformatLink在指定的URL上運行url重寫規則並返回新的URL。

我找到了另一種方式。 我可以通過修改BlogEngine.Core來精確創建所需的鏈接格式。 在Post.cs內部,我只是更改了PermaLinkRelativeLink屬性以反映舊博客軟件的鏈接結構。

我會暫時保留我的重寫模塊規則,以防萬一我錯過了什么。 但這似乎可以解決問題。

我正在使用此庫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/" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM