2011-04-08 23 views
1

example.com/thumb/AWg7X9Ko5hA_default.png某些mod rewrited图像未加载。为什么?

例如,它的工作....

example.com/thumb/m0bt_9Qiznc_default.png

不是..为什么不呢?

当我访问

example.com/thumb/media.php?id=m0bt_9Qiznc &类型=默认

它的工作原理。

这是我使用htaccess的代码:

RewriteEngine on 
RewriteBase/
RewriteRule ^thumb/([^_]*)_([^_]*)\.png$ /thumb/script.php?id=$1&type=$2 [L] 

和的script.php:

$media_type = $_REQUEST['type']; 
$the_id=$_REQUEST['id']; 
if ($media_type=="big") 
{ 
header('Content-type: image/png'); 
readfile("http://i4.ytimg.com/vi/$the_id/0.jpg"); 
} 
elseif ($media_type=="default") { 
header('Content-type: image/png'); 
readfile("http://i4.ytimg.com/vi/$the_id/default.jpg"); } 
+0

这是什么代码? – m3tsys 2011-04-08 17:47:46

回答

1

你的重写规则仅允许部分以下划线分隔:

RewriteRule ^thumb/([^_]*)_([^_]*)\.png$ 

但是你的网址有

example.com/thumb/m0bt_9Qiznc_default.png 
        ^ ^ ^
        1 _ 2 _ 3 

所以,你可能想你的第一个[^_]*变成只是.*更广泛的匹配。或使用:

RewriteRule ^thumb/([^/]+)_([^_]*)\.png$ 
+0

谢谢。我已经使用了'RewriteRule^thumb /([^ /] +)_([^ _] *)\。png $'现在图片加载正常。我可以有任何更多的问题使用此代码? – m3tsys 2011-04-08 17:29:18

+0

很酷。它不会使用'([^ /] +)',它也可以与'(\ w +)'一起使用,因为它匹配字母,数字和下划线。 – mario 2011-04-08 17:32:06

1

这是下划线。

正则表达式只允许一个下划线,但第二个文件名有两个下划线。

+0

非常感谢。 – m3tsys 2011-04-08 17:28:06

相关问题