ASP.NET 301 重定向如果包含最后一个文件夹

ASP.NET 301 redirect if contains last folder

我需要为所有包含 (/CID-VALUE) 的旧 link 进行 301 重定向,例如www.example.com/folder1/folder2/CID-1234。这些 link 可能在任何文件夹上,所以我需要一些东西来捕获 CID- 的所有实例和携带的值,然后用 ?cid=VALUE 之类的东西转到替换的 link。

我在 ASP 和 VB.NET 工作,所以使用 web.config 文件。

这是我目前用于 301 重定向的代码

<rule name="Redirect" stopProcessing="true">
    <match url="^example(.*)" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    </conditions>
    <action type="Redirect" url="/newexample/{R:1}" />
</rule>

您的旧 URL 结构是 /folder1/folder2/CID-1234,我假设 folder1 和 folder2 是示例并且是可变的。

<rule name="redirect-to-cid-page" stopProcessing="true">
    <match url="^([_0-9a-zA-Z\-]+)/([_0-9a-zA-Z\-]+)/([_0-9a-zA-Z\-]+)$" />
    <action type="Redirect" url="/new-cid-page.aspx?id={R:3}" statusCode="301" />
</rule>

所以上面的规则匹配:

  • folder1{R:1} 表达式 ([_0-9a-zA-Z\-]+)
  • folder2{R:2} 表达式 ([_0-9a-zA-Z\-]+)
  • CID 号码{R:3} 表达式 ([_0-9a-zA-Z\-]+)

对于 folder1folder2CID 号码 我假设它们包含拉丁字母无论如何和数字。