【问题标题】:How to rewrite URLs in htaccess that end with recurring characters如何在 htaccess 中重写以重复字符结尾的 URL
【发布时间】:2016-04-21 18:26:10
【问题描述】:

我已经更换了网络平台,并且有一些我不能也不想在旧内容所在的新平台上匹配的旧网址。

我有一组旧产品 URL,它们的 URL 中都包含“-p-”,后跟一串数字并以 .html 结尾(osCommerce 平台 URL)。

我想知道如何重写:

/x/[rest-of-url]-p-[random numbers].html

/x/[rest-of-url]

我希望最终结果看起来像这样:

http://www.shop.com/shop/versace-black-snakeskin-pony-hair-hobo-p-2214.html

重定向到:

http://www.shop.com/shop/versace-black-snakeskin-pony-hair-hobo

有谁知道这在htaccess 文件中作为重写规则是否可行?

【问题讨论】:

    标签: apache .htaccess url-rewriting


    【解决方案1】:

    我的托管托管服务提供商 BeepWeb 回答了我的问题。

    RewriteRule ^/shop/(.*)-p-(.*).html$ http://www.shop.com/product/$1/ [R=302]
    

    第一个参数是您要匹配的 URI。 (.) 匹配任何字符。第二个参数是目标 URL。 $1 对应于第一个 (.)。 $2 将是第二个 (.*),依此类推... [R=302] 告诉重写是 302 重定向(使用 [R=301] 进行 301 重定向)。

    使用 (.) 本质上就像使用通配符。您可以通过指定要匹配的字符而不是所有字符(而不是使用 (.) 来缩小范围,您可以使用 ([abc]*) 仅匹配 a、b 和 c 字符)。

    此外,请注意不要无意中匹配其他 URL(即,您需要确保模式匹配对于被重写的 URL 是唯一的)。

    如果您需要源参考,请参阅以下内容: https://httpd.apache.org/docs/current/rewrite/intro.html

    再次感谢http://www.beepweb.com 的详细回复。 希望对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 2023-03-23
      相关资源
      最近更新 更多