1

我有一个有效的重写规则,它将两个数值提取为 $1:

示例 URL:http://somedomain.tld/fixedtext-1,2-anytext

RewriteRule ^fixedtext-([0-9\,]+).+$ /skript.php?id=$1

所以 id 用 1,2 填满,这很好

我需要在字符串的末尾添加另一个值,用“,”分隔

示例 URL:http://somedomain.tld/fixedtext-1,2-anytext,3

那么如何将“3”访问为 2 美元的解决方案呢?

RewriteRule _____________ /skript.php?id=$1&other_id=$2

另一方面,如果没有给出最后一个参数,正则表达式也必须工作

/fixedtext-1,2-anytext

应该仍然有效。

我试过了

RewriteRule ^fixedtext-([0-9\,]+).+,([0-9]+)$ /skript.php?id=$1&other_id=$2

仅在设置了最后一个参数时才有效

更新:

好的,同时我有两个解决方案,都适用于 apache 1.3,但不适用于 apache2:

RewriteCond %{REQUEST_URI} (,([0-9]+))?/?$
RewriteRule ^fixedtext-([0-9,]+) /skript.php?id=$1&other_id=%2 [L,QSA]

或者

RewriteRule ^fixedtext-([0-9\,]+).+,([0-9]+)$ /skript.php?id=$1&other_id=$2 [L]
RewriteRule ^fixedtext-([0-9\,]+).+$ /skript.php?id=$1 [L]

所以仍然需要一个适用于两个 apache 版本的解决方案。

4

1 回答 1

0

使用此规则:

RewriteCond %{REQUEST_URI} (,([0-9]+))?/?$
RewriteRule ^fixedtext-([0-9,]+) /skript.php?id=$1&other_id=%2 [L,QSA]

这匹配,numberURI 末尾的可选并将其传递给$2

于 2013-12-07T11:03:13.970 回答