我试图在我的htaccess文件中添加一行,允许index1.htm index2.htm一直到999.下面没有用。
<FilesMatch "^/index[1-999]?\.htm$">
Order allow,deny
allow from all
</FilesMatch>
我虽然这很简单。看起来我很简单。
我一直在寻找StackOverflow,发现一些类似的代码,我试图在上面进行调整,但没有用。
现在,我确实有这个有效:
<FilesMatch "\d{1,3}\.htm?$"> ##1 to three digits
Order allow,deny
allow from all
</FilesMatch>
但是,我如何调整它(前置)以包含字符“索引”(并且只包括那些不是'sindex'或'some-index')所以匹配'index+[1 to 3 digits]+.htm
'。
帮助?
答案 0 :(得分:2)
这是一个符合您要求的模式的正则表达式:
^index[1-9][0-9]{0,2}\.htm$
说明:匹配index
,后跟数字1
至9
,后跟可选的一位或两位数0
至{{ 1}},然后是9
。
您的关键错误是表达式.htm
。括号用于表示character class,而不是整数范围。
这是一个Perl程序,它在示例数据集上演示此正则表达式。 (另请参阅live demo。)
[1-999]
预期输出:
#!/usr/bin/env perl
use strict;
use warnings;
while (<DATA>) {
chomp;
if (/^index[1-9][0-9]{0,2}\.htm$/) {
print "* [$_]\n";
} else {
print " [$_]\n";
}
}
__DATA__
index0.htm
index1.htm
index2.htm
index2.html
sindex1.htm
some-index1.htm
index11.htm
index111.htm
index999.htm
index1000.htm
答案 1 :(得分:0)
范围不能那样工作。
^/index[1-9][0-9]{,2}\.htm$