请求创建含路径例外的IIS Redirection重定向规则
IIS 重定向规则配置方案
要实现你需要的重定向逻辑,可通过IIS的URL Rewrite模块添加以下规则,核心思路是匹配原域名的根请求或非指定路径的请求,并将其重定向到目标域名,同时排除特定路径的请求。
具体配置代码(添加到网站根目录的web.config文件中)
<configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect to miotrapagina" stopProcessing="true"> <!-- 匹配所有请求路径 --> <match url="(.*)" /> <conditions logicalGrouping="MatchAll"> <!-- 限定仅对原域名生效 --> <add input="{HTTP_HOST}" pattern="^www\.mipagina\.com$" /> <!-- 排除/MyApp1开头的所有子路径 --> <add input="{REQUEST_URI}" pattern="^/MyApp1(/.*)?$" negate="true" /> </conditions> <!-- 执行永久重定向,保留原请求的路径与参数 --> <action type="Redirect" url="https://www.miotrapagina.com/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
规则细节说明
<match url="(.*)" />:匹配所有请求的路径部分,(.*)会捕获路径内容用于后续重定向时复用- 条件组:
{HTTP_HOST}匹配原域名,确保规则仅作用于www.mipagina.com{REQUEST_URI}排除以/MyApp1开头的路径(包括/MyApp1本身和/MyApp1/xxx这类子路径),negate="true"表示该条件不满足时才触发重定向
- 动作配置:
redirectType="Permanent"对应HTTP 301永久重定向,有利于搜索引擎收录;若需临时重定向可改为Found(HTTP 302){R:1}会将之前捕获的原路径内容带入目标域名,比如访问www.mipagina.com/contact会重定向到www.miotrapagina.com/contact
额外注意事项
- 确保你的IIS服务器已安装URL Rewrite模块,可通过IIS管理器或Web平台安装程序完成安装
- 若需排除多个路径,可在
<conditions>节点下添加更多<add>规则,例如:<add input="{REQUEST_URI}" pattern="^/MyApp1(/.*)?$" negate="true" /> <add input="{REQUEST_URI}" pattern="^/MyApp2(/.*)?$" negate="true" /> - 测试时可通过浏览器开发者工具查看网络请求的状态码,确认重定向行为符合预期
内容的提问来源于stack exchange,提问作者Celso Javier
相关产品推荐
相关产品推荐

