1

在编写用于 IIS6 的 Helicon(许可版本)的 ISAPI Rewrite 3 规则方面,我非常陌生。我需要为从“subdomain.domain.com”到“www.domain.com”的不同页面编写 90 多个规则,而且我对 RegEx 模式不是很熟悉。不幸的是,这些网站没有镜像,所以做一个简单的查询字符串追加是行不通的。

示例:将“ http://subdomain.domain.com/products/product.aspx?id=42 ”重定向到“ http://www.domain.com/productgroup/productinfo

我有一个很好的开始,但是我得到的最远的是让特定的页面重定向工作。我需要将其中一些页面的特定 ID 归结为不同的重定向。目前,我将网页重定向到 Google 的代码(仅用于测试目的)是

# Helicon ISAPI_Rewrite configuration file
# Version 3.1.0.102

RewriteEngine on
RewriteRule ^(subfolder.html)/?(.*)$ http://www.google.com/ [NC,R=301,L]

注意:我刚刚创建了一个包含以下页面的简单网站: - /index.html - /subfolder/subfolder.html - /subfolder/subfolder2.html - /subdir/subdir.html

根据前面的代码,“/subfolder/subfolder.html”重定向到谷歌,其他正常显示页面。出于测试目的,我一直在尝试附加“id=1”以重定向到 YouTube,并附加“id=2”以重定向到 Facebook,目前这些都不起作用。代码是

RewriteRule ^(subfolder2.html\?id=1)$ http://www.youtube.com/ [NC,R=301,L]
RewriteRule ^(subfolder2.html\?id=2)$ http://www.facebook.com/ [NC,R=301,L]

我所需要的只是获得一个有效的模式,然后我可以从那里修改它以使其适用于其余页面。

感谢您的任何回复!

4

1 回答 1

1

经过大量的试验和错误,这就是我最终让它工作的方式。

RewriteEngine on

RewriteCond %{QUERY_STRING} ^id=1 [NC]
RewriteRule products/product_detail.aspx http://www.newdomain.com/NewProductPage [NC,R=301,L]

根据我对它的理解,“RewriteCond”会查找该 ID(在这种情况下)。RewriteRule 由不带查询字符串的原始 URL (products/product_detail.aspx) 和重定向的 URL ( http://www.newdomain.com/NewProductPage ) 组成。

于 2014-01-14T16:17:09.513 回答