从已解散的Miva网址中删除& AFFIL = 12345并重定向

时间:2014-06-04 21:07:38

标签: .htaccess mod-rewrite rewrite

我倾倒了Miva并搬到了ZenCart。

我已经使用htaccess将主要Miva ULR重定向到ZC中的所有不同产品。

但是对于我来说,有404个旧联盟网址在404附近浮动。

我必须在htaccess中删除哪些重写代码以删除& AFFIL = 12345(5位数字不同),然后将字符串的其余部分重定向到新的ZenCart URL?

实施例

从:

中删除变量& AFFIL = 86758

http://www.standardlegal.com/Merchant2/merchant.mvc?Screen=PROD&Store_Code=SLcom&Product_Code=SLS508&AFFIL=86758

然后将点击转发到:

http://www.standardlegal.com/store/index.php?main_page=product_info&products_id=20

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

以下重写将从查询字符串的 end 中删除AFFIL=nnnnn,但保留查询字符串的其余部分。

RewriteEngine On

RewriteCond %{QUERY_STRING} (?:(.*)&)?AFFIL=\d{5}
RewriteRule .* /store/index.php?%1 [L]

条件保存查询字符串中的所有参数值对(如果有),但不保留affiliate参数及其值。

请注意,您需要使用%从重写条件引用捕获的组,而不是像重写规则那样引用$

[编辑]

以下重定向将处理您提供的示例网址更改:

RewriteEngine On

RewriteCond %{QUERY_STRING} Product_Code=SLS508
RewriteRule ^Merchant2/merchant.mvc /store/index.php?main_page=product_info&products_id=20 [R=301,L]

重写条件意味着此规则仅适用于特定产品。该规则要求重写来自旧站点的基本路径(以防产品代码因任何原因最终出现在新站点的URL中)。我还添加了301重定向而不是静默内部重定向,因为您应该告诉访问者您的网址已经更改。

[/编辑]

作为旁注,我不会使用Zencart,代码库是可怕的并且更新了噩梦。几年前我放弃了使用它并转移到Magento。