index.php
さまざまなGET
パラメーターを使用して、すべてのリクエストをリダイレクトするプロジェクトがあります。
現在、私はこの種の htaccess を使用しています (これは単なる抜粋でありa, b, c...
、問題を単純化するためにパラメーター名を に変更しました)。
RewriteRule ^([\w-]+)\.html$ index.php?a=$1 [L]
RewriteRule ^([\w-]+)/([\w-]+)\.html$ index.php?a=$1&b=$2 [L]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)\.html$ index.php?a=$1&b=$2&c=$3 [L]
(...)
それはうまくいきますが、私はそれらの行を単一の行に縮小する方法を考えていました。
アイデアは、すべてのパラメーターを「生成」するためにいくつかのネストされた括弧を持つGET
ことですが、思ったほど簡単には機能しないようです。
これが私がこれまでに作ったものです:
RewriteRule
^(?:([\w-]+)\/)*([\w-]+)\.html$
index.php?a=$1&b=$2&c=$3&d=$4&e=$5&f=$6&g=$7&h=$8&i=$9 [L]
GET
URL の結果http://website.com/1/2/3/4/5/6/7/8/9.html
:
array(9) {
["a"]=> string(1) "8"
["b"]=> string(1) "9"
["c"]=> string(0) ""
["d"]=> string(0) ""
["e"]=> string(0) ""
["f"]=> string(0) ""
["g"]=> string(0) ""
["h"]=> string(0) ""
["i"]=> string(0) ""
}
a=1
get , b=2
, c=3
...の代わりに、最後の 2 つのパラメーターのみを受け取ります。が実行されることに注意してくださいRewriteRule
。正規表現の一致がわかります。
何か案が ?