我有几组不同的变量可以是 alhpa 数字。
如果我注释掉任何两组,另一组将起作用。只有一组可以工作,但需要三个都可以工作。
第一组只有一个级别:
domain.com/index.php?var1a=var1a
第二组可以是一级、二级或三级:
domain.com/index.php?var2a=var2a
domain.com/index.php?var2a=var2a&var2b=var2b
domain.com/index.php?var2a=var2a&var2b=var2b&var2c=var2c
第三组可以是一级、二级或三级:
domain.com/index.php?var3a=var3a
domain.com/index.php?var3a=var3a&var3b=var3b
domain.com/index.php?var3a=var3a&var3b=var3b&var3c=var3c
htaccess 文件如下所示:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?var1a=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?var1a=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?var2a=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?var2a=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?var2a=$1&var2b=$2 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ index.php?var2a=$1&var2b=$2 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)([a-zA-Z0-9_-]+)/$ index.php?var2a=$1&var2b=$2&var2c=$3 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ index.php?var2a=$1&var2b=$2&var2c=$3 [L]
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?var3a=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?var3a=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?var3a=$1&var3b=$2 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ index.php?var3a=$1&var3b=$2 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?var3a=$1&var3b=$2&var3c=$3 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ index.php?var3a=$1&var3b=$2&var3c=$3 [L]
经过测试,我明白为什么这不起作用但无法弄清楚如何定义不同的集合。