.htaccess正则表达式问题

时间:2011-10-02 21:20:58

标签: regex .htaccess

 RewriteEngine on
 RewriteRule ^([a-zA-Z0-9]{1,3})\/([0-9])\.html$  thread.php?board=$1&thread=$2

这是我的.htaccess文件。让我解释一下它应该如何运作:

website.com/vg/1337.html => website.com/thread.php?board=vg&thread=1337

换句话说:

website.com/x/y.html => website.com/thread.php?board=x&thread=y
x - 1-3 symbols, A-z, 0-9;
y - unlimited amount of symbols, 0-9;

看起来很简单,但...... website.com/vg/1337.html只是带我到404。

我做错了什么?

3 个答案:

答案 0 :(得分:4)

您的正则表达式仅匹配包含单个数字的网址,例如“5.html”。

要解决此问题,请将[0-9]更改为[0-9]+plus表示“以前的一个或多个令牌”。

答案 1 :(得分:1)

[0-9]* or [0-9]+

在[0-9]之后缺少枚举器。如果你没有放任何东西,它只适用于一个字符

答案 2 :(得分:1)

在上面的示例中,

y不是“无限制”,只允许一个数字。在其后添加一个明星*(或者为{1}更多的“{1}}”。