mod_rewrite 漂亮的 URL 不起作用

mod_rewrite 漂亮的 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错误,告诉我我写错了这个规则。

我写错了什么吗?

编辑:不是重复的。我的问题与我尝试自己编写但未能编写出可行代码的特定代码有关。

答案1

这在您的正则表达式中无效:(*)

*表示重复前一个字符。由于组中没有任何字符,因此没有重复项。

如果更改(*)(.*)表达式,则变得有效。.表示“每个字符”,因此您可能需要进一步限制它。

您的示例的表达形式可以是:

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

其中\d表示一个数字和[a-z]此范围内的任意字符。我还将其更改*+,它匹配“1 个或更多字符”,而不是“0 个或更多”,后者将是*

相关内容