使用两个获取参数清除 php 中的 url

Clean url in php with two get parameters

我正在开发一个使用干净 URI 的 PHP 脚本。

我的问题是,我有一个页面首先不使用 get 参数,然后是一个,最后是两个。

.htaccess 文件中的行当前如下所示:

 RewriteRule ^birthing-records/([^/]+)/?$ birthing-records.php?url= [L,QSA,NC]

但是如果我这样添加第二个参数:

RewriteRule ^birthing-records/([^/]+)/([^/]+)/?$ birthing-records.php?url=&second= [L,QSA,NC]

脚本将我重定向到错误页面。

我该如何设置?

对于这种情况,我需要在 .htaccess 中添加两行吗?

我通常会通过简单地调用另一个页面来解决这个问题,但我想保留我现在使用的确切 URI,因为所有这些页面都在 Google 处建立了索引。如果有任何帮助,我将不胜感激。

每个规则都需要一个规则,否则只要你输入一个参数,它就会崩溃。

RewriteRule ^birthing-records/([^/]+)/?$ birthing-records.php?url= [QSA,NC]
RewriteRule ^birthing-records/([^/]+)/([^/]+)/?$ birthing-records.php?url=&second= [L,QSA,NC]

感谢@Martin 的注释:第一个的 L 选项已被删除,因为 L 选项指示最后一个规则是 运行(只能存在一个规则使用 L 选项)

否则,据我所知,它们每个都可以单独工作,但如果你想接受 1 或 2 个参数,那么你需要两条规则。

你可以在这里测试 htaccess 的东西:http://htaccess.mwl.be/