RewriteRule:仅允许数字和特定字符串逗号分隔

时间:2016-03-08 20:06:51

标签: regex .htaccess mod-rewrite

我试图重写网址只允许数字和(可选)单词" all"逗号分开。

例如,像这样:mypage / 23,15,all,2,all

我尝试了一些东西,但是有一个问题。首先,这是我的规则(可能是语法错误):

var refreshIntervalId;
window.addEventListener("onkeydown", keyDown,true);
window.addEventListener("keydown", keyDown);

function keyDown() {
    var e = window.event;
    switch (e.keyCode) {
        case 83:
            start();
            break;
        case 90:
            stop();
            break;
    }
}

function start() {
    stop();
    refreshIntervalId = setInterval(function() {
        // code...
    },10);
}

function stop() {
    if (refreshIntervalId != null) {
        clearInterval(refreshIntervalId);
        refreshIntervalId = null;
    }
}

这里的问题是,如果写 mypage / 23 有效(正确), mypage / 23,所有有效(正确), mypage / 23,all,a 有效(因为它会检测到''所有'所以错误

如何修改规则以仅接受整个单词" all"?

谢谢。

2 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式:

RewriteRule ^mypage/((?:\d+|all)(,(?:\d+|all))*)/?$ target-url?str=$1 [L,NC,QSA]

字符类中没有字符分组,即[...]

答案 1 :(得分:0)

试试这个:我认为它应该可行

/([\d]+,(all)+)

[] for optional
() for grouping