2

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

我有一个这样的网址:

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

显然我只想得到一切,直到下一个/

提前致谢

4

1 回答 1

2

.允许任何字符匹配并$ 明确表示您要一直匹配到字符串的末尾。

您可以使用否定字符类代替.并删除$. 否定字符类将匹配斜杠以外的任何字符(^字符类否定的标记):

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

由于正则表达式重复默认是贪婪的,这将包含尽可能多的字符。这就是下一个斜线之前的一切。

于 2012-10-29T19:27:15.543 回答