.htaccess规则只接受列表中的特定值

时间:2017-02-06 21:38:44

标签: apache .htaccess mod-rewrite

我想接受这个网址结构,其中$level只能是其中一个值:a-, a+, b-, b+, ab-, ab+

domain.com/notes/a-
domain.com/notes/a+
domain.com/notes/b-
domain.com/notes/b+
domain.com/notes/ab-
domain.com/notes/ab+

我试过这种方法,但我没有成功。

RewriteRule ^notes/([a|o|b|ab]-+)$ /notes.php?level=$1 [L]

1 个答案:

答案 0 :(得分:2)

你几乎就在那里,但+是一个特殊字符,所以它必须被转义,并且交替(管道字符)在括号中。我删除了' o' o在你的清单中没有。 (?:)只是说不要抓住这个。

RewriteRule ^notes/((?:a|b|ab)(?:-|\+))$ notes.php?level=$1 [L]