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


Clean url in php with two get parameters

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

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

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

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

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

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

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

我必须如何设置?

在这种情况下,我需要在.htaccess中两行吗?

我通常会通过简单地调用另一个页面来解决这个问题,但我想保留我现在使用的确切 URI,因为所有这些页面都在 Google 上编入索引。我真的很感激任何帮助。

每个都需要一个规则,否则每当你放置一个参数时,它就会中断。

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

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

否则,据

我所知,它们各自都可以正常工作,但是如果您想接受 1 或 2 个参数,那么您需要两条规则。

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