2011-10-02 124 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個或更多」添加一個+)。