如何只允许.htaccess正则表达式中的某些单词?

时间:2013-01-02 02:04:11

标签: regex .htaccess

例如,我可以在我的域(.htaccess)的基本目录中编写以下/规则:

RewriteRule ^something/[bd]on$ foo.php [L]

哪个匹配以下网址,我的网域为www.example.com

http://www.example.com/something/bon
http://www.example.com/something/don

正确?但是我怎么把文字放在那里匹配呢?例如,applecheese,因此它只匹配:

http://www.example.com/something/apple
http://www.example.com/something/cheese

请注意,在something/之后,我有大约40种不同的可能性,所以请为我提供一个.htaccess规则,以便能够适应这种情况。

1 个答案:

答案 0 :(得分:1)

40个单词听起来很长但是AFAIK,使正则表达式模式匹配一​​组选项的唯一方法是在parantheses中明确地写出它们,用管道|字符分隔。

所以我认为RewriteRule ^something/(word1|word2|word3)$ foo.php [L]应该适合你。

修改

我忘了提。要缩短列表,您可以使用字词组/范围和条件(例如colou?rgr[ae]y),但这会使您在以后需要编辑时看起来很混乱。