【问题标题】:301 redirects - replace a section of the URL301 重定向 - 替换 URL 的一部分
【发布时间】:2018-12-18 04:26:06
【问题描述】:

我正在改造一家 Woocommerce 商店,我需要设置重定向,将包含类别名称的旧 URL 发送到新 URL,而新 URL 不会。

编辑:旧网址和新网址都包含product/,并且旧网址可能有也可能没有尾部斜杠。

一个例子是:

旧网址myshop.co.uk/product/category-name/sub-category-name/product-name

新网址myshop.co.uk/product/product-name

谁能告诉我 reg exp 将是什么来实现这一点?

【问题讨论】:

  • 尝试 (myshop.co.uk\/\w*)(.+(?=\/[\w-]*$))(\/[\w-]*$) 并替换为 \1\3 here
  • 谢谢,这真的很有帮助。但是我应该说 URL 每次都会包含“/product/”。我已将您的表达式更新为(.*\/product)(.+(?=\/[\w-]*))(\/[\w-]*$),这似乎可以完成这项工作,但是如果我在旧 URL 中添加一个斜杠,则表达式不起作用。是否可以要求表达式搜索尾部斜杠或什么都不搜索?
  • 好吧,试试(.*\/product)(.+(?=\/[\w-\/]+$))(\/[\w-\/]+$)here

标签: regex redirect woocommerce url-redirection http-status-code-301


【解决方案1】:

搜索(?<=product/)(?:[^/]+/)+(?=[^/]+/?$) 并替换为空字符串。

【讨论】:

  • 您好,感谢您的回复。我必须在你的斜杠之前添加反斜杠才能让它工作,但它确实有效。此表达式是否可以检查 URL 末尾的斜杠?
  • 实际上,我只是再次检查了一下,发现它只适用于“产品”和“产品名称”之间的两个子页面。这对我来说不太适用,因为可能还有更多。
  • 根据您使用的工具,可能确实需要在正斜杠之前使用反斜杠。我刚刚更新了我的答案以说明可选的斜杠。
  • 我明白了。我刚刚更新了我的答案,以便product/ 和产品名称之间可以有任意数量的类别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
相关资源
最近更新 更多