我有几个不同的变量集可以是数字的。htaccess为不同的变量集重写
如果我注释掉任何两组,另一组将会工作。只有一套可以工作,但需要全部三套才能工作。
第一组是唯一的一层:
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]
经过测试,我明白为什么这不起作用,但不能解决如何定义不同的集合。
您在所有三组中定义了相同的匹配 - 实际的原始URL如何不同?写它的方式,就像你希望Apache神奇地知道'domain.com/guesswhat'是否应该进入规则1,2或3。请给出一些示例URL来区分应如何使用这三条规则。 –
第一个是子公司,因此它的: –
ooops ....第一个是子公司所以它:domain.com/?affiliate=username。其次是发布后的domain.com/?c=cat&m=month&t=tile等,第三个类似于第二次使用搜索术语和标签的硬编码链接domain.com/?search=true&keyword=word&keyword2=word2。类似的东西,如果我可以让重写以这种方式工作 –