我遇到了htaccess rewrite_mode的问题。 当我在这些规则中使用多个$ _GET变量时,第一个变量得到的名称文件是第一个$ _GET变量。请帮帮我。
RewriteEngine on
RewriteBase /ts/
RewriteRule ^(.+)/$ ts.php?a=$1 [C]
RewriteRule ^(.*)/(.+)/$ ts.php?a=$1&b=$2 [C]
RewriteRule ^(.*)/(.*)/(.+)/$ ts.php?a=$1&b=$2&c=$3 [C]
RewriteRule ^(.*)/(.*)/(.*)/(.+)/$ ts.php?a=$1&b=$2&c=$3&d=$4 [C,L]
这是“localhost / ts / 1 /”
的输出Array ( [a] => 1 )
这是“localhost / ts / 1/2 /”
的输出Array ( [a] => ts.php [b] => 2 )
这是“localhost / ts / 1/2/3 /”
的输出Array ( [a] => ts.php [b] => 2 [c] => 3 )
这是“localhost / ts / 1/2/3/4/5/6 /”的输出
Array ( [a] => ts.php/2/3 [b] => 4 [c] => 5 [d] => 6 )
答案 0 :(得分:1)
我不会使用链标志而只是反转你的RewriteRules,例如:
RewriteEngine on
RewriteBase /ts/
RewriteRule ^(.*)/(.*)/(.*)/(.+)/$ ts.php?a=$1&b=$2&c=$3&d=$4 [L]
RewriteRule ^(.*)/(.*)/(.+)/$ ts.php?a=$1&b=$2&c=$3 [L]
RewriteRule ^(.*)/(.+)/$ ts.php?a=$1&b=$2 [L]
RewriteRule ^(.+)/$ ts.php?a=$1 [L]