mod_rewrite漂亮的URL不工作

我有以下url:

http://example.com/gallery/thumb.php?h=400&w=300&a=c&src=Img_0.jpg

我试图使用mod_rewrite使“漂亮”。

所需的URL是:

http://example.com/h/400/w/300/a/c/src/Img_0.jpg

而我的mod_rewrite是:

RewriteRule ^h/(*)/w/(*)/a/(*)/src/(*)$ /gallery/thumb.php?h=$1&w=$2&a=$3&src=$4 [L]

但我得到一个500 Internal Server Error ,这告诉我,我写了这个规则错了。

我有什么错误的呢?

编辑:不重复。 我的问题是关于一个特定的代码,我试图写自己,并没有设法写一个工作代码。

这在你的正则expression式中是无效的: (*)

*表示前一个字符的重复 。 既然你没有任何angular色,就没有什么可重复的了。

如果将(*)更改为(.*)则expression式变为有效。 . 表示“每个angular色”,所以你可能想限制一点。

你的例子可能是一个expression式:

 RewriteRule ^h/(\d+)/w/(\d+)/a/([az]+)/src/(.+)$ /gallery/thumb.php?h=$1&w=$2&a=$3&src=$4 [L] 

其中\d表示一个数字, [az]表示该范围内的任何字符。 我也把*改成+ ,这个符合“1个或更多字符”,而不是“0或更多”,这就是*