将动态URL重写为新的动态URL

时间:2010-04-19 15:53:30

标签: mod-rewrite http-status-code-301 dynamic-url

我是RewriteEngine的新手,但未能找到以下问题的答案。我运行一个电子商务网站,其中包含不断变化的产品目录。我们的网址是动态的。问题是,如果我想将动态变量重定向到不同的动态变量,该怎么办。

例如,我想:

http://www.mydomain.com/product.jhtm?id=12345

现在转到:

www.mydomain.com/product.jhtm?id=78910

如何通过.htaccess执行此操作?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您需要使用RewriteMap指令的外部重写程序功能。实际上,您可以用您想要的任何语言编写应用程序(只要您使其可执行),读取STDIN上的原始ID,然后在STDOUT上输出新的ID。然后,您可以在RewriteRules中引用该应用程序。

在您的应用程序层而不是.htaccess文件中实现这种逻辑可能更容易,特别是因为外部重写程序必须连续运行,而不是为每次新的重写调用。

答案 1 :(得分:0)

您需要使用地图类型为prg的{​​{3}},以便让脚本查找原始ID并返回新ID。不要忘记查询字符串只能在RewriteCond中拆分。