htcaccess将子目录重定向到单个页面

时间:2015-07-10 19:12:32

标签: apache .htaccess mod-rewrite redirect

我希望在我在实际网站上测试之前确保我拥有此功能。在我开始为我现在的雇主工作之前,他们进行了网站更新,但没有保持相同的URL命名结构。因此,即使我们更新了Sitemap,我们仍然会在Google上收到404抓取错误。它将列出旧URL,然后说出将旧链接列为链接自的位置。我不确定我需要纠正这个问题。

旧结构是domain.com/product/12345/product_name。

新结构是domain.com/category-name/12-product-name。实际上没有办法将旧产品网址与新产品网址相匹配。有些名字已经改变了。

所以我想将/ product /目录中的所有页面重定向到单个页面,无论是主页还是所有库存页面。

我已经在

上有重写规则
 RewriteEngine on
 RewriteBase /
 RewriteCond %{HTTP_HOST} www.(.*)$ [NC]
 RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

要重定向产品目录中的所有页面,我应该添加:

 RedirectMatch 301  ^/product/(.*) http://domain.com/

我也用RewriteRule和RedirectPermanent看到了它。不确定哪种是我想要做的最佳做法。

1 个答案:

答案 0 :(得分:0)

使用mod_rewrite模块保留所有规则:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteRule ^product/.* / [L,NC,R=301]