如何重定向已经重写的301

时间:2016-09-30 12:39:09

标签: php .htaccess redirect mod-rewrite

我以前的重写规则工作正常如下:

activeTab

mysite.com/product-detail/laptop

在搜索中,已有5000个产品结果。 我想将301重定向到新文件夹

mysite.com/electronics/product-detail/laptop

我不希望谷歌破坏我的结果。请帮我。

1 个答案:

答案 0 :(得分:0)

我认为它应该是这样的:

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^product-detail/([\w-.]+)/?$ /electronics/product-detail/$1 [NC,R=301,L]
RewriteRule ^electronics/product-detail/([\w-.]+)/?$ product-detail.php?e=$1 [NC,L]

您的第1,第2规则不变。然后,您将所有旧网址转发到新网址,并使用重定向代码301.然后,将新网址处理到您的脚本,就像使用旧网址一样。

我在此假设您的路径前缀 electronics 是一个常量,即它不依赖于产品类别。如果是这样,您将不得不在脚本中进行重定向,因为Apache无法猜测产品的类别(例如,如果从/ product-detail / hugo-boss重定向到=> / parfume / product -detail /雨果老板)。