【问题标题】:What 301 redirect would work for this string format?什么 301 重定向适用于这种字符串格式?
【发布时间】:2018-02-08 19:44:09
【问题描述】:

我有一个产品 URL 格式的电子商务商店: /categoryname/subcat1name/subcat2name/1450--my-widget

我将其缩短为: /1450--我的小部件

我可以在电子商务软件中进行更改,但我需要为旧 URL 设置一个 mod 重写重定向。

为了避免匹配类别、内容页面等的 URL,以及新格式的产品 URL,我需要匹配所有这些条件:

  1. 不包含字符串“/info/”
  2. 包含一个斜线,后跟 1 个或多个字符,后跟另一个斜线,后跟 1 个或多个数字,后跟“--”,后跟 1 个或多个字符

什么指令会起作用?

编辑: 更多匹配和不匹配字符串的例子

与旧产品网址匹配:

/a-category/this-category/333--my-widget
/some-cat/34--widgetname

不匹配:

/1918--widgetcategory/
/info/12--about-us
/quick-order
/login?back=my-account
/2050--my-widgetname

【问题讨论】:

  • 您能否再添加一些有问题的有效和无效示例。
  • 旧产品网址匹配:/a-category/this-category/333--my-widget /some-cat/34--widgetname 不匹配:/1918--widgetcategory/ /info/ 12--about-us /quick-order /login?back=my-account /2050--my-widgetname
  • 我不知道如何格式化评论。我正在向 OP 添加信息。
  • 您可以点击问题下方的编辑链接并提供相关信息

标签: regex .htaccess redirect mod-rewrite


【解决方案1】:

您可以将此 301 重定向规则用作站点根目录 .htaccess 中的第一条规则:

RedirectMatch 301 ^(?!.*/info/).*/[^/]+/([0-9]+--[^/]+)/?$ /$1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 2020-02-09
    • 2018-07-05
    • 2016-02-02
    • 1970-01-01
    • 2017-08-28
    • 2013-10-31
    相关资源
    最近更新 更多