我需要使用重定向指令将带有查询字符串的旧URL重定向到没有查询字符串的新URL。新URL取决于查询字符串的值。例如:
我想: http:// www.mydomain.com/product.php?id_product=AAA
将重定向到:
http:// www.mydomain.com/product-name-for-product-number-1
和
http:// www.mydomain.com/product.php?id_product=BBB
将重定向到:
http:// www.mydomain.com/this-is-different-product-name-for-product-number-2
提前致谢。
答案 0 :(得分:1)
你可以做这种类型的重定向:
来自:http:// www.mydomain.com/product-name-for-product-number-AAA
至:http://www.mydomain.com/product.php?id_product = AAA& name_product = product-name
来自:http://www.mydomain.com/this-is-different-product-name-for-product-number-2
至:http://www.mydomain.com/product.php?id_product = BBB& name_product = this-is-different-product-name
你无法从htaccess文件中检索产品名称,唯一的方法是:
RewriteRule ^(.+)-for-product-number-(.+)$ ^product.php?id_product=$2&name_product=$1
或者你需要为你拥有的每个产品创建一个rewriterule(你可以从一个从db中检索所有产品id& name的脚本生成.htaccess):
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
答案 1 :(得分:0)
在我看来,您无法基于查询字符串执行重定向。所以你必须添加[QSA]
标志并重定向到一个脚本,该脚本能够通过查询字符串重定向。