htaccess,用正则表达式重定向:文件夹到变量

时间:2012-10-29 18:58:01

标签: regex .htaccess variables redirect directory

我希望你能解决我的小问题:

我有一个像这样的网址:

www.blabla.com/images/q2uj89j2fq89hf943ghf74ßgq3789fg43/blue.jpg

在“images”文件夹中,我有一个PHP Skript,它应该将字符串“images /”和下面的“/”之间的所有内容作为GET变量。所以像这样:

www.blabla/images/script.php?param=q2uj89j2fq89hf943ghf74ßgq3789fg43

目前我有以下htaccess文件:

Options +FollowSymlinks
RewriteEngine on
RewriteRule  ^(.*)$ script.php?param=$1 [QSA,L]

但是有了这个,我得到这样的东西:

www.blabla/images/script.php?param=q2uj89j2fq89hf943ghf74ßgq3789fg43/blue.jpg

显然我只想把所有东西都拿到下一个/

提前致谢

1 个答案:

答案 0 :(得分:2)

.允许任何字符匹配,$ 明确表示您希望一直匹配到字符串的结尾。

您可以使用否定字符类而不是.并删除$。否定的字符类将匹配除斜杠之外的任何字符^标记字符类否定):

RewriteRule  ^([^/]*) script.php?param=$1 [QSA,L]

由于默认情况下正则表达式重复是贪婪的,因此这将占用尽可能多的字符。直到下一个斜线,这就是一切。