使用Wordpress/Woocommerce
最新版本:
我需要301将我的旧商店网址重定向到我的新网站,该网站有更清晰的网址,但有超过2000个网址,我希望尽可能自动化。希望.htaccess中的正则表达式可以做到这一点吗?我对如何做到这一点知之甚少,所以任何帮助都会非常感激。
旧网址格式
foobar.com/vintage-industrial/3135-sgabello-alto-cindy-industrial-arredamento-industrial-sgabello-.html
foobar.com/shabby-e-provenzale/3270-cubo-cottage-2-cassetti-arredamento-shabby-chic-etnico-nordico.html
foobar.com/mobili-etnici/3286-armadio-lambert-blue-arredamento-etnico-classico.html
foobar.com/mobili-etnici/3335-tavolo-telgede-80-tavolo-rustico-industrial-arredamento-etnico-arredamento-industrial.html
foobar.com/sedie-sgabelli/1687-sedia-jenny-arancio-sedie-colorate-pop-vintage.html
上面的示例显示了一个目录,可以是任何内容,后跟产品ID和名称
新网址格式
foobar.com/prodotto/sgabello-alto-cindy
foobar.com/prodotto/cubo-cottage-2
foobar.com/prodotto/armadio-lambert-blue
foobar.com/prodotto/tavolo-telgede-80-tavolo
foobar.com/prodotto/sedia-jenny-arancio
每个新网址都采用这种简单格式&所有人都将拥有'prodotto'基本网址
旧网址中包含大量关键字,这些关键字已从新网址中删除
更新
有没有办法可以删除旧网址的这一部分:
'vintage-industrial/3135-'
我认为这是我可能需要做的所有事情,因为mod_rewrite应该从网址的其余部分找到产品?所以我会留下
foobar.com/sgabello-alto-cindy-industrial-arredamento-industrial-sgabello
由于
答案 0 :(得分:0)
基本上我们有:
foobar.com/type/####-product-name-and-key-words.html
将被翻译成
foobar.com/prodotto/product-name
如果您只有几种类型,我们可以这样做:
RewriteRule "^/first-type/[0-9]+-(.*)\.html$" "/prodotto/$1"
RewriteRule "^/second-type/[0-9]+-(.*)\.html$" "/prodotto/$1"\
哪个更安全,但如果你有很多话,有点单调乏味。我们也可以这样做:
RewriteRule "^/.*/[0-9]+-(.*)\.html$" "/prodotto/$1"
哪个更快,但有一点点匹配我们不想要的东西的风险。无论哪种方式,我们都会留下foobar.com/prodotto/product-name-and-key-words
我认为这是我可能需要做的,因为mod_rewrite应该从网址的其余部分找到产品?
如果确实如此,那就太棒了!我们已经完成了。如果没有,我们将不得不继续。
如果您没有一个易于遵循的将名称与关键字分开的规则,那么我们必须更具创意。我们可以override WP's 404 page使用我们自己的代码。这404页面会做一些非常奇怪的事情。它会删除其网址的最后一部分(基于破折号/斜线)并重定向到缩减的网址。这样我们将逐步接近正确的页面:
foobar.com/type/####-product-name-and-key-words.html
foobar.com/prodotto/product-name-and-key-words
foobar.com/prodotto/product-name-and-key
foobar.com/prodotto/product-name-and
foobar.com/prodotto/product-name
这有很多重定向的负面影响,但是他们的浏览器应该学习永久性。这也意味着您实际上无法拥有404页面,因为它会逐渐删除网址,直到您到达主页。