2011-08-24 187 views
0

我需要重定向指令,以旧查询字符串的URL重定向到新的URL没有查询字符串。新的URL取决于查询字符串的值。例如:.htaccess基于查询字符串重定向,并删除查询字符串

我想: HTTP:// www.mydomain.com/product.php?id_product=AAA

会重定向到:

的http:// www.mydomain.com/产品名称为产品用户号码1

而且

的http:// www.mydomain.com/product.php?id_product=BBB

会重定向到:

的http:// www.mydomain.com/this-is-different-product-name-for-product-number-2

在此先感谢。

回答

0

在我看来,你不能执行基于查询字符串的重定向。所以你将不得不添加[QSA]标志并重定向到一个脚本,这将能够重定向感谢查询字符串。

1

你可以做到这一点类型的重定向:从

:HTTP:// www.mydomain.com/product-name-for-product-number-AAA
指向:http:// www.mydomain ?的.com/product.php id_product = AAA & name_product =产品名称

:HTTP:// www.mydomain.com/this-is-different-product-name-for-product-number-2
发送至:http://www.mydomain.com/product.php?id_product=BBB & name_product =这是不同的产品名称

你不能dinamically检索htaccess文件中的产品名称,要做到这一点的唯一方法是:

RewriteRule ^(.+)-for-product-number-(.+)$ ^product.php?id_product=$2&name_product=$1 

,或者您需要为每个产品一个重写规则,你有(你可以生成一个脚本的.htaccess从db检索所有产品编号&名称):

RewriteRule ^product-name-for-product-number-1$ product.php?id_product=AAA 
RewriteRule ^this-is-different-product-name-for-product-number-2$ product.php?id_product=BBB