【发布时间】:2013-02-17 22:17:14
【问题描述】:
大家好,
我在 Codeigneter 中玩耍,并尝试制作某种相册只是为了好玩(在我真正开始之前更好地了解 codeigneter)。
现在我是否在这里建立了一个测试网站: http://foal.scriptsenprogs.nl/
现在的问题是用户将来可以上传图片。而且我希望该图像是某种保存...
因此,如果有人使用此链接: http://foal.scriptsenprogs.nl/media/img/albums/1.png
它应该被阻止(就像现在一样)。
我将这行代码放在一个 .htacces 文件中,该文件位于 /media/img/albums 文件夹中
<Directory "http://foal.scriptsenprogs.nl/media/img/albums" >
Options Includes
AllowOverride All
Order allow,deny
Deny from All
</Directory>
我必须承认我对 .htaccess 文件知之甚少,但这似乎可行(直接 url 被阻止)。
在我的 codeIgneter 代码中,我使用它来将图像添加到网页:
$str .= '<div style="margin-top:20px;"><img width="200px" src="./media/img/albums/' . $imageStuff[$row['album_id']] -> img_id . '.' . $imageStuff[$row['album_id']] -> img_type . '" /></div>';
在 .htaccess 文件之前,它有效。但现在它不起作用。
如果我检查 chromes 错误控制台,我会看到此错误:
GET http://foal.scriptsenprogs.nl/media/img/albums/1.png 404 (Not Found) foal.scriptsenprogs.nl:48
所以这是一个404 Not Found 错误。但是,如果您检查 URL,您会发现它被赋予了绝对 URL?但是我插入了一个相对 URL 对吗?
你们对如何解决这个问题有什么想法吗?
编辑 1 在子域的 de webroot 中,我有以下 .htaccess 文件:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|school|media|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
编辑 2 为了进一步澄清这个问题......
如果您在网站上 (http://foal.scriptsenprogs.nl/),则必须使用相对路径来显示图像。 (像这样:<img width="200px" src="./media/img/albums/1.png" />)
但是如果你试图通过绝对路径访问图像,它必须被阻止(链接将是这样的:http://foal.scriptsenprogs.nl/media/img/albums/1.png)
【问题讨论】:
-
我想显而易见的问题是:
1.png是否存在于文件夹.../albums/中? -
@faa,很明显,但是是的,它存在。它甚至在我玩 .htaccess 文件之前就可以工作;P
-
/media/img/albums/.htaccess中唯一需要的就是一行 -deny from all -
@Jeemusu,试过了,它有点工作(它否认一切)。但我无法在网页上显示图片以...而且我需要这样做。
标签: image .htaccess codeigniter relative-path absolute-path