【问题标题】:301 Redirect in htaccess. Matching Page IDshtaccess 中的 301 重定向。匹配页面 ID
【发布时间】:2013-02-27 07:14:35
【问题描述】:

我需要一些帮助来为以下类型的 url 创建 htaccess 301 重定向。

总共大约有 500 种左右的产品,但与其为每个 url 编写重定向,那样会非常庞大​​且耗时,我希望有一种我还没有找到的更简单的方法来创建一种正则表达式匹配?

旧:http://www.example.co.uk/test-product-name-slug/prod_233.html

新:http://www.example.co.uk/test-product-name-slug-233.html

可以通过浏览到 .....example.co.uk/-223.html ......访问新的 URL,然后重写为 .....example.co.uk/test-产品名称-slug-233​​.html

所以看来我需要一种方法来检测传入的访问者是否来到一个包含 prod_id 并重定向到 -id 的 url

我希望一切都有意义。

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting http-status-code-301


    【解决方案1】:

    希望这是您正在寻找的。它只匹配 1 个目录

    /some-product_name-random/prod_9393.html => /some-product_name-random-9393.html

    .htaccess

    RewriteEngine on 
    RewriteBase /
    
    RewriteRule ^([a-zA-A-_]+)/prod_([0-9]+)\.html$ /$1-$2.html [R=301,L,QSA]
    

    正则表达式和参数说明

    ([a-zA-A-_]+) 匹配产品名称$1

    prod_([0-9]+) 匹配产品 ID $2

    [R=301]301 永久重定向

    [L]stop .htaccess 脚本(可能会被删除,但在针对不同场景使用多个规则时,对于特定规则通常是一种很好的做法)

    [QSA] 保留查询字符串domain.com/somepath/page.html?querystring=value&otherstuff (?...)

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多