代码之家  ›  专栏  ›  技术社区  ›  Daniel Sloof

Apache正则表达式不返回第一个结果

  •  0
  • Daniel Sloof  · 技术社区  · 16 年前

    我有以下网址:

    http://somedomain.com/aa/search/search.php
    

    我希望它返回两个选择,一个是“aa”,另一个是“search/search.php”。

    在Regex Coach的帮助下,我制作了以下正则表达式,它正好针对这两个对象:

    /([a-z]{2})/(.*)
    

    但是,当我在htaccess文件中使用它们时,重写不会发生:

    Options +FollowSymlinks
    RewriteEngine on
    
    RewriteRule /([a-z]{2})/(.*) /$2?var=$1
    

    编辑:

    我所说的“不发生”,是指以下URL:somedomain.com/aa/search.php为我提供
    “/aa/search.php未找到”

    “/search.php?var=aa未找到”。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Aaron Digulla    16 年前

    这取决于您定义规则的位置。服务器(全局)配置文件的语法正确。如果你使用 .htaccess 文件,服务器将从URL中剥离到文件所在位置的路径。尝试

    ([a-z]{2})/(.*)
    

    (即没有第一条斜线)