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

这是我的.htaccess文件。让我来解释一下你应该如何工作:.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.

我在做什么错?

+0

error_log对这个请求说了什么? – imm

回答

4

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

要修复它,请将[0-9]更改为[0-9]+plus的意思是“以前的一个或多个令牌”。

+0

谢谢,先生:)现在它的工作! –

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

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

1

y在上面的示例中不是“无限”,只允许一个数字。在它之后添加一颗星*(或者对于“1个或更多”添加一个+)。