.htaccess 重写包含两个动态参数且可能缺少一个参数的规则

.htaccess 重写包含两个动态参数且可能缺少一个参数的规则,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我已经用两个参数重写了这个规则,并且它应该正常工作。 但有时第二个参数可能不存在或为空 我的代码: RewriteRule ^(\d+)/?$ ./index.php?firma=$1 RewriteRule ^(\d+)-(.+)/?$ ./index.php?firma=$1&nimi=$2 第一个$1是数字值 第二个是有字母的 我的问题的例子 我有一个网址: 这很好用 这将很好地工作,并打开同一页。 但由于我有超过250000页,有些页面有2美元的空白部分。 那么生成的U

我已经用两个参数重写了这个规则,并且它应该正常工作。 但有时第二个参数可能不存在或为空

我的代码:

RewriteRule ^(\d+)/?$ ./index.php?firma=$1 

RewriteRule ^(\d+)-(.+)/?$ ./index.php?firma=$1&nimi=$2
第一个$1是数字值 第二个是有字母的

我的问题的例子

我有一个网址:

这很好用

这将很好地工作,并打开同一页。 但由于我有超过250000页,有些页面有2美元的空白部分。 那么生成的URL是:

现在这不显示,它将显示404
我怎样才能修好它

您可以在第一条规则中选择尾随连字符,如下所示:

RewriteRule ^(\d+)-?/?$ ./index.php?firma=$1 [L,QSA]

RewriteRule ^(\d+)-(.+)/?$ ./index.php?firma=$1&nimi=$2 [L,QSA]

在目标URI中重写查询字符串时,建议使用
QSA
标志(查询字符串附加)。

您可以在第一条规则中选择尾随连字符,如下所示:

RewriteRule ^(\d+)-?/?$ ./index.php?firma=$1 [L,QSA]

RewriteRule ^(\d+)-(.+)/?$ ./index.php?firma=$1&nimi=$2 [L,QSA]
在目标URI中重写查询字符串时,建议使用
QSA
标志(查询字符串附加)