2010-07-08 102 views
0
RewriteRule ^foo-bar-([0-9]+)-([a-z]+)-([a-z-+]+)/$ index.php?a[]=&b=$1&c=$2&d=$3&e=$4&f=$5 [L,NC] 

我怎么能把最后一个参数从规则不需要没有添加两行,并在第一个删除它,然后在第二个保持..?重写规则问题

因此,裁定是一条线,但有两个选项acees网址,如:

/foo-bar-2-steps/ 

/foo-bar-2-steps-eq/ 

回答

3

执行下列操作之一:

  • 使用两重写规则,每一个案件
  • 打上问号可选部分后,像这样:

foo-bar-([a-z]+)(-([a-z]+))?

这里,第二个参数是可选的。请注意,这会更改您的数字索引,因为您使用了额外的括号。

+0

谢谢Sjoerd,它的工作。 现在我有一个问题: 我如何才能让一个变量的htaccess然后用它在所有的重写规则,如: 重写规则^(宋|其他|等).... 重写规则^(宋|其他|等).... 为: SETENV VAR(曾根|另一个|等) 重写规则^(ENV:VAR).... – oriceon 2010-07-08 10:18:53

+0

每个()定义的变量。你可以通过$ 1访问第一个(),secound通过$ 2,... – JochenJung 2010-07-08 10:32:29

+0

我知道这一点。还有一个想法。我想在.htaccess中设置一个变量,然后在我所有的RewriteRule中使用它,以避免每次都重复一个代码。如果我想从该变量中更改一个选项,请尽快完成。 – oriceon 2010-07-08 10:34:29