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 に答える