【发布时间】:2010-12-01 20:41:13
【问题描述】:
我刚刚使用 URL 重写更改了我的一个网站的页面 url 结构,我需要将旧结构重定向到新结构(以处理 Google 索引的旧链接)。我的问题是我想重定向到重写的 URL,而不是实际的 URL,我找不到这样做的方法。
在更改之前,我有以下网址:
重写规则 ^products/([^_\r\n//]*)/([^_\r\n//]*)/$ /products.aspx?cat=$1&subcat=$2 [NC, L]
更改后,我有以下内容:
重写规则 ^products-([^_\r\n//]*)-([^_\r\n//]*)/$ /products.aspx?cat=$1&subcat=$2 [NC, L]
我现在要做的是为匹配的 url 发出 301 重定向
^products/([^_\r\n//]*)/([^_\r\n//]*)/$ 到 ^products-([^_\r\n//] *)-([^_\r\n//]*)/$,
即,具有以下规则:
重写规则 ^products-([^_\r\n//]*)-([^_\r\n//]*)/$ products-([^_\r\n//]* )-([^_\r\n//]*)/ [NC,L]
上述规则产生以下错误:
“页面未正确重定向”
有没有办法使用 .Net 或使用 Url 重写规则来做到这一点?
任何帮助将不胜感激。
【问题讨论】:
-
你用什么重写?您使用的是什么版本的 IIS?
-
如果不深入研究您的表达式,您收到的消息很可能表明存在重定向循环,即无休止地重定向到自身。
-
我正在使用 Helicon ISAPI 3.0 和 IIS 6。我认为问题在于重定向到另一个虚拟路径,而不是物理路径。