0

我需要无限长地继续这个,而不是每次都写出来。有没有办法做到这一点?

RewriteRule   ^(\w+)/?$   index.php?page=$1 [QSA]
RewriteRule   ^(\w+)/(\w+)/?$   index.php?page=$1&$1=$2 [QSA,L]
RewriteRule   ^(\w+)/(\w+)/(\w+)/?$   index.php?page=$1&$1=$2&$2=$3 [QSA,L]

所以一直到 $1=$2 然后 $2=$3 所以 page=blog&blog=article&article=date&date=2012

然后我的 PHP 会对此进行分析。所以可能是 $1 -> $11 我知道的长 URL 意味着我仍然可以启用添加。

AAA.com/blog/article/date/2012/?colour=blue
4

1 回答 1

0

不是这样的。要获得替换$5占位符,您确实需要一个匹配组。

当然可以按组对其进行选择:

RewriteRule  ^(\w+)(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?/?$   index.php?page=$1&$1=$2&$2=$3&$3=$4&$4=$5&$5=$6  [QSA,L]

但后来你有一些&=&=&=缺席条目的尾随。通常它应该导致一个空的$_GET[""],但 PHP 甚至会忽略它。所以,可能是一个选择。我不觉得它是一个更具可读性或更简洁的 RewriteRule。

于 2012-10-26T23:52:31.590 回答