【问题标题】:Rewrite/Redirect URL using IIRF使用 IIRF 重写/重定向 URL
【发布时间】:2013-05-02 06:04:56
【问题描述】:
IIS 6,使用 IIRF。我不确定这是重写还是重定向。我们有一个新站点,需要 301 将旧页面重定向到新页面并仅保留查询字符串值。我需要以下重写规则。这些东西很难处理,我找不到任何与我正在尝试做的事情相匹配的例子。
我需要根据特定的 URL 重写:
subdomain.site.org/dir1/dir2/dir3/page.cfm?pc=1092
当这个页面被点击时,我需要它重写为以下内容:
subdomain2.site.org/detail.aspx?id=1092
请注意,它不会提取整个查询字符串,而只是提取它的值。
【问题讨论】:
标签:
redirect
url-rewriting
rewrite
iirf
【解决方案1】:
由于您想使用 301 重定向到新的(永久)URL,您应该使用 RedirectRule。
假设您有一个配置为响应 subdomain.site.org 和 subdomain2.site.org 的网站,您将需要一个 RewriteCond 才能仅重定向来自旧子域的请求。
RewriteCond %{SERVER_NAME} ^subdomain\.site\.org$
RedirectRule ^/dir1/dir2/dir3/page\.cfm\?pc=(\d+)$ http://subdomain2.site.org/details.aspx?id=$1 [I,R=301]
RedirectRule 最终仅在旧 URL 模式匹配时才执行,并将 pc 的查询字符串值恢复为新 URL。