当 type="Rewrite" 时, redirectType="Permanent" 是无效的,只有当type="Redirect" 时, redirectType="Permanent"才生效的,所以type="Rewrite" 时不要用redirectType="Permanent"。
type="Rewrite" 时,网址不变,只是网页内容是新网面的。
<rule name="RiLiBiao" enabled="true">
<match url="^rilibiao/(\w+?)-(\d{4})-(\d{3})\.html" />
<action type="Rewrite" url="/RiLiBiao.aspx?RAlias={R:1}&RYear={R:2}&RKind={R:3}" />
</rule>
type="Redirect" 时,网址会变的,相当于跳转到新网页了。
<rule name="RiLiBiao" enabled="true">
<match url="^rilibiao/(\w+?)-(\d{4})-(\d{3})\.html" />
<action type="Redirect" url="/RiLiBiao.aspx?RAlias={R:1}&RYear={R:2}&RKind={R:3}" redirectType="Permanent" />
</rule>
1. `type="Rewrite"`:**服务器内部转发,浏览器地址栏 URL 不变**,`redirectType` 属性**完全无效**,写了也会被 IIS 忽略,属于冗余代码,建议删掉。
2. `type="Redirect"`:**HTTP 重定向,浏览器收到 3xx 状态码,地址栏变更**,`redirectType` 才生效:
- `redirectType="Permanent"` → HTTP 301 永久重定向
- `redirectType="Temporary"` → HTTP 302 临时重定向
- `redirectType="SeeOther"` → HTTP 303
- `redirectType="Found"` → 旧版 302
- 伪静态展示(对外 URL 好看,实际跑 aspx):**用 Rewrite**
- 旧 URL 废弃,永久迁移到新地址:**用 Redirect + Permanent(301)**