【问题标题】:Transform Regex to RewriteRule将正则表达式转换为 RewriteRule
【发布时间】:2016-02-25 14:31:44
【问题描述】:

几分钟前我问了一个问题,得到了很好的回应。有用。 (This is it)。我将它添加到我的 PHP 脚本中。现在我需要用另一个类似的问题来完成我的网站,但没有什么特点。我需要从该正则表达式中获取重写规则(这是不同的问题,不是我以前的问题)。
我需要重写链接,例如:

http://my_site.com/technic/k-700/?type=repair

链接如下:

http://my_site.com/repair/k-700/ 

k-700 可以是任何其他组合(在 / 之间)代替 repair 只能是 kit.
现在我需要 .htaccess 文件的重写规则。请。
我的结果不起作用:

RewriteRule ^([^\/].)/k-700/$ /technic/k-700/?type=$1 [L]

我无法避免 k-700 :(

【问题讨论】:

    标签: php regex .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    如果我的理解是正确的并且这是在你的根 .htaccess 中,那么试试这个:

    RewriteRule ^(repair|kit)/([^/]+)/?$ technic/$2/?type=$1 [L]
    

    更新:重新阅读您的描述。 repairkit 值以及替换是否应始终具有 k-700 有点模棱两可。因此,这里有更多的例子来满足这些可能性:

    RewriteRule ^(repair|kit)/([^/]+)/?$ technic/k-700/?type=$1 [L]
    
    RewriteRule ^(kit)/([^/]+)/?$ technic/k-700/?type=$1 [L]
    
    RewriteRule ^(kit)/([^/]+)/?$ technic/$2/?type=$1 [L]
    

    【讨论】:

    • 谢谢你。第一个变体是最好的。也是我稍后将使用的最后一个变体。
    猜你喜欢
    • 1970-01-01
    • 2011-10-02
    • 2016-04-02
    • 1970-01-01
    • 2019-05-11
    • 2014-11-08
    • 2017-12-29
    • 2023-03-09
    相关资源
    最近更新 更多