我有以下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或更多”,这就是* 。