【问题标题】:I need a regular expression to my htaccess我的 htaccess 需要一个正则表达式
【发布时间】:2015-09-28 05:58:59
【问题描述】:

我对正则表达式非常陌生,我需要在我的.htacess 上重定向一些网址

一些例子是:

/lentes-de-contato/9/lentes-de-contato-biofinity-coopervision
/lentes-de-contato/9/lentes-de-contato-biofinity-teste
/lentes-de-contato/9/lentes-de-contato-biofinity
/lentes-de-contato/9/biofinity

正则表达式需要匹配单词biofinity,但不匹配单词coopervision。我尝试了几种方法来构建一个如下所示的表达式:"biofinity" AND !"coopervision",但似乎没有任何效果。到现在我只有:

/lentes-de-contato/([0-9]+)/(.*biofinity.*)

谁能帮帮我?

【问题讨论】:

    标签: php regex .htaccess match regular-language


    【解决方案1】:

    也许吧。 Rewrterule 将根据您的条件实现

    RewriteCond %{REQUEST_URI} biofinity
    RewriteCond %{REQUEST_URI} !coopervision
    RewriteRule
    

    【讨论】:

    • 很好,我刚刚删除了第一个 RewriteCond 并在我的 RewriteRule 上添加了 /(\d+)/.*biofinity.* ,它运行良好。谢谢你的帮助o/
    【解决方案2】:

    您可以在 RewriteRule 本身中使用负前瞻来执行此操作:

    RewriteRule ^lentes-de-contato/(\d+)/(?!.*?coopervision).*?-biofinity ... [L,NC]
    

    【讨论】:

    • 我没试过,但似乎也可以,谢谢你的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 2023-03-13
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多