我试图弄清楚使用 web.config 重写规则在 IIS 7.5 服务器上是否可以实现以下操作。我们正在将页面从一个域移动到另一个域。这是配置。
旧域名页面/路径示例:
https://www.olddomain.com/oldpath/news/2023/10/16/article-name/
新域名页面/路径示例:
https://www.newdomain.com/newpath/news/2023/10/16/article-name/
域/路径之间的区别在于域本身和第一级路径名。第一级路径名称后面的所有其他内容都保留该名称。
所以基本上重写规则会寻找特定的路径结构 /oldpath/news/dateyear/datemonth/dateday/article-name/ 并通过 301 重定向转发到 newdomain.com/newpath/news/dateyear/datemonth/dateday/article-姓名/。请注意,二级路径名在域“/news/”之间保持相同。
重定向将适用于以下示例:
重定向需要是特定于路径的“/oldpath/news/”,并且不适用于存在于未定义路径中的页面。例如:/关于/、/联系/等
其他条件:
日期文件夹不需要重定向,但如果这样做也没关系。例如:
请并谢谢你。
根据您的描述,我编写了以下重写规则并进行了测试。这对我来说是工作。我希望它也能帮助你。请尝试以下规则:
<rewrite>
<rules>
<rule name="Redirect to New Domain and Path" stopProcessing="true">
<match url="^oldpath/news/(\d{4}/\d{2}/\d{2}/.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.olddomain\.com$" />
</conditions>
<action type="Redirect" url="https://www.newdomain.com/newpath/news/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>