示例:
我想创建一个包含不同分类变量的网址。还有一个订单。第一个变量是蔬菜({variable01}),第二个是fruits({variable02}),第三个是树({variable03})等。
xxx.com/ {variable01} - {variable02} - {variable03} - {variable04} -......
是的我得到了这个网址。
BUT
如果一个变量有两个单词(或三个)怎么办?我希望分隔符也是一个连字符(布鲁塞尔 - 豆芽)?
示例:
xxx.com/brussels-sprouts- {variable02} - {variable03} - {variable04} -......
或
xxx.com/ {variable02} -green-apple- {variable03} - {variable04} -......
xxx.com/的布鲁塞尔豆芽 - 绿苹果
这怎么可能?
感谢。
答案 0 :(得分:0)
无法再指定变量的边界,因此只有知道变量的确切数量且只有1个变量可能包含连字符才有可能。您可以为此创建一个正则表达式:
第一个变量:
^([\w-]+)-(\w+)-(\w+)-(\w+)$
第二个变量:
^(\w+)-([\w-]+)-(\w+)-(\w+)$
但是:如果你知道每个变量最多只能有1个连字符,你也可以这样做:
/ VAR1-foo1-VAR2-foo2的-VAR3-foo3-VAR4
RewriteRule ^(\w+(-\w+)?)-(\w+(-\w+)?)-(\w+(-\w+)?)-(\w+(-\w+)?)$ index.php?var1=$1&var2=$3&var3=$5&var4=$7 [L]
结果是:
array (
'var1' => 'var1-foo1',
'var2' => 'var2-foo2',
'var3' => 'var3-foo3',
'var4' => 'var4',
)