IIS精确匹配URL重定向异常:重定向后仍显示原URL
IIS精确匹配重定向后地址栏仍显示原URL的排查方向
搞混了重定向和URL重写
IIS的URL重写模块里,重定向(Redirect)和重写(Rewrite)是完全不同的操作:- 重定向会返回3xx状态码,通知浏览器跳转到新地址,地址栏会同步更新;
- 重写是服务器内部转发请求,浏览器完全不知情,地址栏会保持原URL不变。
检查你的规则类型,必须选择重定向而非重写,同时设置合适的状态码(301永久重定向或302临时重定向均可)。
精确匹配未包含查询字符串
你的目标URL带有?lang=zh-hans查询参数,若规则仅精确匹配路径部分(/faq/general-information/can-i-check-the-status-of-my-orders/),带参数的请求将无法触发规则。
进入规则的「匹配URL」设置:- 确认「匹配类型」为「完全匹配」;
- 在「查询字符串」选项中,选择「匹配所有查询字符串」或设置精确匹配
lang=zh-hans,确保带参数的请求能命中规则。
规则被其他优先级更高的规则覆盖
IIS的重写规则按列表顺序执行,若存在优先级更高的规则先匹配了该URL,当前精确匹配规则会被跳过。
将你的精确匹配规则移到规则列表最顶部,确保它最先被处理。浏览器缓存干扰
若之前该URL有缓存记录(比如旧的重写配置或无效重定向),浏览器会直接使用缓存内容,导致地址栏未更新。
尝试用Ctrl+F5强制刷新页面,或清空浏览器缓存后重新测试。IIS配置未生效
修改规则后未重启站点或应用池,新配置无法加载生效。
在IIS管理器中右键点击对应站点,选择「重新启动」,或重启对应的应用池。
内容的提问来源于stack exchange,提问作者ras
相关产品推荐
相关产品推荐

