RewriteRule 双斜杠问题

RewriteRule double slash issue

在我的 .htaccess 中有这个正则表达式:

RewriteRule ^thumbnails/([0-9]*)/([0-9]*)/(.*)$ lib/thumb.php?w=&h=&src= [QSA]

我在参数中传递 url 时遇到问题。正则表达式删除除一个以外的所有斜线。示例:

Enter: domain.com/thumbnails/200/143/http://img.youtube.com/vi/xxxxxxx/0.jpg
Result: domain.com/lib.tuhmb.php?w=200&h=143&src=http:/img.youtube.com/vi/xxxxxxx/0.jpg

注意 http: 后只有一个斜杠。

有什么想法吗?

谢谢!

这是 mod_rewrite 中的 预期行为 ,因为重写引擎在 [=14] 中应用模式时将多个 / 剥离为单个 / =].

要克服这种行为,请使用 RewriteCond %{REQUEST_URI} 来捕获您的值,如下所示:

RewriteCond %{REQUEST_URI} ^/thumbnails/(\d+)/(\d+)/(.*)$ [NC]
RewriteRule ^ lib/thumb.php?w=%1&h=%2&src=%3 [L,QSA]