301 重定向以及 URL 重写,以减少带有查询参数的 URL

301 重定向以及 URL 重写,以减少带有查询参数的 URL

好的,我已在服务器 (IIS 7) 上设置了 URL 重写,例如,

http://example.org/p/1234/

是真的

http://example.org/product/?product_id=1234

(/product/ 包含能够处理查询参数的 Web 应用程序的索引文件)。

问题是,我想要每个人现在使用这些/p/1234/网址,所以我想在有人访问时发送 301 重定向老的的网址/product/?product_id=1234据我所知,当 URL 重写发生时,就服务器而言,用户做过/product/?product_id=1234

尽管在浏览器的 URL 栏中可能会显示http://example.org/p/1234/,但当我转储标头和 CGI​​ 变量时,/p/1234/它不会显示在任何的变量。

我猜我担心的是,即使我能做到这一点,它似乎也会使一个简单的请求变得相当复杂:

  1. /p/1234/
  2. 重写为/product/?product_id=1234
  3. 原本是嗎/p/1234/?(是的
  4. 没做什么。

否则:

  1. /product/?product_id=1234
  2. 原本是嗎/p/1234/?(
  3. 301 重定向至/p/1234/
  4. 重写为/product/?product_id=1234
  5. 原本是嗎/p/1234/?(是的
  6. 没做什么。

我知道最终一些搜索索引将会消除旧的 URL,转而采用 301 重定向指定的 URL,但在此之前,这似乎会给服务器带来很大的开销。

另外,如果我确实设置了这一点,是否有一个我可以在 IIS 中使用的过滤器来执行此操作,或者我是否需要将逻辑添加到我的 web 应用程序中?

请注意,我已经为所有这些网页进行了设置<link rel="canonical".../>,但我仍然看到旧格式出现在搜索结果中。

相关内容