【问题标题】:ASP.Net 301 redirects and URL rewritingASP.Net 301 重定向和 URL 重写
【发布时间】: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。我认为问题在于重定向到另一个虚拟路径,而不是物理路径。

标签: .net url


【解决方案1】:

好的,我使用以下规则解决了这个问题:

重写规则 ^products-([^_\r\n//]*)-([^_\r\n//]*)/$ /redir.aspx?url=/products-$1-$2/ [NC,L]

redir.aspx 页面所做的是将 301 代码写入标题并传输到作为参数传递给它的新 url。

【讨论】:

    猜你喜欢
    • 2016-09-28
    • 2013-01-27
    • 2011-01-18
    • 2013-12-21
    • 2015-03-04
    • 1970-01-01
    • 2023-03-25
    • 2011-09-01
    • 2016-05-11
    相关资源
    最近更新 更多