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\-]+)
对于 folder1、folder2 和 CID 号码 我假设它们包含拉丁字母无论如何和数字。
我需要为所有包含 (/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\-]+)
对于 folder1、folder2 和 CID 号码 我假设它们包含拉丁字母无论如何和数字。