友好的非强制参数-url

non mandatory parameter in a friendly-url

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

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

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

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

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

您可以在您的 Regex 模式中将第二个捕获组设置为可选,以便该规则可以处理您的两个新网址。

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

上面的模式将同时匹配 uris /someone/foo/bar/someone/foo .

这是您的完整规则

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