代码之家  ›  专栏  ›  技术社区  ›  kai

友好url中的非强制参数

  •  1
  • kai  · 技术社区  · 6 年前

    我想写一个漂亮的url someone.php 目录问题是它有时需要两个参数,有时只需要一个。我无法处理第二个参数。

    我只需要一个参数就可以轻松编写

    RewriteRule ^someone/([^.?/]+)$  /someone.php?someone=$1 [L]
    

    然而,当我尝试添加第二个参数时,我无法成功。我试过这样的

    RewriteRule ^someone/([^.?/]+)/([^.?/]*)$  /someone.php?someone=$1&topic=$2 [L]
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Amit Verma    6 年前

    您可以在Regex模式中选择第二个捕获组,以便该规则可以处理这两个新URL。

    ^someone/([^.?/]+)/?([^.?/]*)?$
    

    上面的模式将匹配两个URI /someone/foo/bar /someone/foo

    这是你的完整规则

    RewriteRule ^someone/([^.?/]+)/?([^.?/]*)?$  /someone.php?someone=$1&topic=$2 [L]