C#面试题更新 2026-08-03

在 ASP.NET Core 应用中,URL 重写与重定向策略分别指什么?它们之间有哪些核心区别,各自的适用场景是什么?请阐述其工作机制及典型用途。

考察说明

考察对 ASP.NET Core 中 URL 重写和重定向概念的理解及区分能力。

回答思路

  1. 【回答框架 1】URL 重写是服务器端内部操作,在请求处理过程中修改请求路径,客户端无感知,浏览器地址栏不变。它常用于简化 URL、支持静态文件或友好链接。
  2. 【回答框架 2】URL 重定向是服务器返回 301/302 等状态码,指示客户端浏览器跳转到新地址,地址栏会变化。它常用于域名迁移、HTTP 转 HTTPS、旧链接永久转移。
  3. 【回答框架 3】在 ASP.NET Core 中可通过 RewriteMiddleware 配置重写规则,使用 RewriteOptions 和规则处理器;重定向可通过 RewriteOptions 的 AddRedirect 方法实现。
  4. 【回答框架 4】重写不影响客户端,而重定向会产生额外请求;重写适合内部路由优化,重定向适合对外强制跳转。选择时需考虑用户体验和搜索引擎影响。
  5. 【关键点 1】重写是内部路径修改,无额外请求;重定向是客户端跳转,产生额外请求。
  6. 【关键点 2】重定向适合 HTTP 转 HTTPS、域名更换等场景;重写适合美化 URL 或内部路由映射。
  7. 【关键点 3】ASP.NET Core 中两者均通过 RewriteMiddleware 配置,但实现机制不同。
  8. 【关键点 4】重定向会修改浏览器地址栏,重写不会。
  9. 【易错点 1】误将重写与重定向混用,导致客户端无法感知路径变化。
  10. 【易错点 2】重定向过多可能造成性能损耗和 SEO 问题。
  11. 【易错点 3】忽略重定向状态码(301、302)的差异及缓存行为。