Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 重写规则双斜杠问题_Regex_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Regex 重写规则双斜杠问题

Regex 重写规则双斜杠问题,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,在my.htaccess中具有此regexp: RewriteRule ^thumbnails/([0-9]*)/([0-9]*)/(.*)$ lib/thumb.php?w=$1&h=$2&src=$3 [QSA] 我在参数中传递url时遇到问题。regexp删除除一个斜杠以外的所有斜杠。例如: Enter: domain.com/thumbnails/200/143/http://img.youtube.com/vi/xxxxxxx/0.jpg Result: domain

在my.htaccess中具有此regexp:

RewriteRule ^thumbnails/([0-9]*)/([0-9]*)/(.*)$ lib/thumb.php?w=$1&h=$2&src=$3 [QSA]
我在参数中传递url时遇到问题。regexp删除除一个斜杠以外的所有斜杠。例如:

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
中的预期行为,因为在
重写规则中应用模式时,重写引擎将多个
/
剥离为单个
/

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

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

这应该是url编码的。我已经尝试过了,但是正则表达式不能与url编码的url一起使用:domain.com/thumbnails/243/143/http%3A%2F%2Fimg.youtube.com%2Fvi%2xxxxxxx%2F0.jpgWhat您认为它不起作用?
(.*)
应该匹配任何内容,但是apache正在将
/
折叠为
/
,因为它不希望
http://
没有编码。查看结果url,它给了我一个来自apache的错误请求抱歉,我犯了一个错误。url看起来像:domain.com/thumbnails/243/143/http%3A%2F%2Fimg.youtube.com%2Fvi%2fxxxxxx%2F0.jpg,它只是说找不到url。。所以我知道正则表达式没有捕捉到它。。。