我试图重写网址只允许数字和(可选)单词" 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"?
谢谢。
答案 0 :(得分:3)
您可以使用此正则表达式:
RewriteRule ^mypage/((?:\d+|all)(,(?:\d+|all))*)/?$ target-url?str=$1 [L,NC,QSA]
字符类中没有字符分组,即[...]
答案 1 :(得分:0)
试试这个:我认为它应该可行
/([\d]+,(all)+)
[] for optional
() for grouping