RewriteRule具有动态两个参数,一个可能缺失

时间:2017-05-22 07:20:38

标签: .htaccess mod-rewrite

我有两个参数的Rewriterule,它的工作原理应该如此。 但有时候第二个参数可能不存在或是空白的。

我的代码:

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

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

第一个$ 1是数字值 第二个是带的字母。

我的问题的例子。

我有一个网址:

  

https://www.someserver.com/1255554-SOME-LETTERS-AS

这样可以正常使用!

  

https://www.someserver.com/1255554

这也可以正常工作并打开同一页面。 但由于我有超过25万页,一些页面的2美元部分空白。 然后生成的URL为:

  

https://www.someserver.com/1255554-

现在这个没有显示,它会说404 我该如何解决?

1 个答案:

答案 0 :(得分:0)

您可以在第一条规则中将尾随连字符设为可选:

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

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

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