有人知道如何重定向包含产品父类别的 URL 吗?基本上,我想将大量产品重定向到我创建的简单登录页面,因此,我不想为每个产品进行重定向,而是希望定位父类别(制造商)并将其重定向到我的一个登录页面。
就像这些:
https://example.com/product/baader/baader-600/baader-600-belts/belt-rubber/
https://example.com/product/baader/baader-600/baader-600-belts/belt-urethane/
https://example.com/product/baader/baader-600/baader-600-parts/cover/
https://example.com/product/baader/baader-600/baader-600-parts/washer/
是否全部重定向到此目标网页:
https://example.com/replacement-parts/baader/baader-600/
所以我猜你会瞄准任何有“product/baader/baader-600/”的东西,然后放弃url的最后一部分(/baader-600-belts/belt-rubber/)并将其重定向到“/replacement-parts/baader/baader-600/”我不知道如何使sus成为RewriteRule。
答案1
欢迎来到 ServerFault。
我们不需要复杂的重写来实现它。下面的方法可行...
location /product/baader/baader-600/ { return 302 /replacement-parts/baader/baader-600/; }
重写等效内容...
rewrite ^/product/baader/baader-600/ http://example.com/replacement-parts/baader/baader-600/;
如果您需要 301 重定向,那么这里是等效的...
location /product/baader/baader-600/ { return 301 /replacement-parts/baader/baader-600/; }
rewrite ^/product/baader/baader-600/ /replacement-parts/baader/baader-600/ permanent;
答案2
假设制造商必须是动态的,那么您可以添加这样的规则。
location ~ /product/(.+) {
rewrite ^.*(\/product\/)([\w|-]*)\/(.*)\/.*$ /replacement-parts/$2/$3 permanent;
}
Here $2 is a second match group for manufacturer, and $3 contains product part.