我将网站更新为新系统,现在我们有大量的重定向要处理。
其中许多都属于相同的一般模式 - 以.html或.php结尾的旧链接,URL中包含某些关键字(产品名称)。
我没有为每个案例编写明确的重定向(已经高达1500+,并且仍然在增长),而是在考虑使用AND / OR语句处理它们的方法。
例如:
如果OLD URL包含" SKU12345" AND" .html",应将其重定向到/ products / SKUGROUP1 / SKU12345。
这样,旧网址是否为
" /products/oldsubcategory/something/cool-widget-SKU12345.html"
或
" /something/really-old-version-of-SKU-12345.html"
它应该重定向到同一个新页面。
换句话说,我希望捕获包含特定产品型号/ SKU /关键字的任何链接, AND 扩展名.html或.php,并将它们重定向到新的URL(其中包含#39; t有一个结尾)。
我只能说"如果旧网址包含此SKU /关键字",因为新网址还包含SKU /关键字,并且会导致重定向循环。它必须特别包含.html / .php。
这可能吗?如果是这样,有人能告诉我正确的语法吗?
谢谢!
答案 0 :(得分:0)
您可以在root .htaccess中使用此重定向规则来匹配这两种情况:
RewriteEngine On
RewriteRule (^|[/-])AA99SKU1-?(\d*)\.(?:html?|php)$ /products/SKUGROUP1/AA99SKU1$2 [L,NC,R=301]
这将符合两种情况:
"/products/oldsubcategory/something/cool-widget-SKU12345.html"
OR
"/something/really-old-version-of-SKU-12345.html"