2009-04-27 73 views
1

我不知道爲什麼,但每次我在.htaccess文件中對RewriteRule的複雜模式執行某些操作時,出現500內部錯誤。 的全部我現在的.htaccess文件是:500當在.htaccess中使用mod_rewrite時出現內部錯誤

RewriteEngine on 
RewriteRule ^ups/sections/([A-Za-z]{3})/([A-Za-z0-9_-+\.]+)/?$ /dl.php?loct=sec&sec=$1&file=$2 [R=302] 

我只有「RewriteEngine敘述的」嘗試和沒有錯誤。 我已經嘗試過一些非常簡單的事情,比如:「RewriteRule^ups /?$/xyz [R]」,它可以很好地工作。 我試過,沒有Symlinks選項。 我已經嘗試過,並且在模式開始時沒有斜線,並且在替換開始時有和沒有斜線。

似乎每當我用「複雜」看正則表達式,它只是不起作用。

注意:我沒有這個服務器,並且不能更改apache配置文件。

任何幫助,將不勝感激。

回答

1

嘗試將其更改爲

RewriteRule ^ups/sections/([A-Za-z]{3})/([A-Za-z0-9_+.-]+)/?$ /dl.php?loct=sec&sec=$1&file=$2 [R=302] 
+0

嗯,我覺得很愚蠢...... – 2009-04-27 09:42:12

1

爲了解釋自己的錯誤:在字符類的破折號(-)doeas八方通描述兩個人物之間的範圍。除非它出現在字符類的開始或結尾。但是從_+的範圍無效,因爲_(0x5F)的位置高於+(0x2B)。