如何在IIS 7.5中通过web.config实现特定路径域名重定向?
可以通过IIS 7.5的web.config重写规则实现该需求
直接在旧域名站点的web.config文件中添加以下URL重写规则即可实现指定路径的301永久重定向,且不会影响其他路径:
<configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect Old News Paths to New Domain" stopProcessing="true"> <!-- 匹配以oldpath/news/开头的所有路径,捕获后续所有内容 --> <match url="^oldpath/news/(.*)$" /> <!-- 仅对旧域名的请求生效 --> <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> </system.webServer> </configuration>
规则说明
- 匹配规则:
^oldpath/news/(.*)$会精准匹配所有以/oldpath/news/开头的路径,(.*)会捕获该路径之后的所有内容(包括年份、月份、日期、文章名等任意层级的路径),完全满足你对路径结构的要求,无论是否包含日期文件夹都会被正确匹配。 - 域名限定:通过
{HTTP_HOST}条件确保只有旧域名www.olddomain.com的请求才会触发重定向,避免新域名的请求被错误处理。 - 重定向行为:使用
redirectType="Permanent"设置301永久重定向,这对搜索引擎优化(SEO)友好,能传递页面权重;{R:1}会把之前捕获的后续路径内容原样替换到新路径中,保证新旧路径的结构一致性。 - 停止后续处理:
stopProcessing="true"确保该规则匹配后不再执行其他重写规则,提升请求处理效率。
注意事项
- 确保你的IIS 7.5服务器已经安装了URL Rewrite模块(该模块不是IIS默认组件,需要手动下载安装)。
- 测试阶段可以先将
redirectType改为Found(即302临时重定向),验证规则生效且路径正确后,再改回Permanent。 - 如果旧站点已有其他重写规则,将该规则放在规则列表的靠前位置,避免被其他规则干扰。
内容的提问来源于stack exchange,提问作者Overspeed
相关产品推荐
相关产品推荐

