我有一个有效的重写规则,它将两个数值提取为 $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 版本的解决方案。