You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用加载服务器图片失败,求修改.htaccess规则方案

解决图片访问被.htaccess重定向的问题

嘿,我来帮你搞定这个图片加载的问题!你的核心问题是当前的.htaccess规则把所有请求都强制转发到sample.php了——包括你对upload_folder里图片的请求,这就难怪Picasso会报“访问被拒绝”或者“文件未找到”了,因为服务器其实把图片请求转去了PHP页面,根本没去读真实的图片文件。

下面给你两种修改方案,选一个适合你的就行:

方案1:直接排除整个upload_folder目录

如果upload_folder里只有图片和不需要重定向的静态资源,最简单的办法就是让.htaccess不对这个目录下的请求执行重写规则。修改你的.htaccess文件如下:

RewriteEngine on
# 先判断请求是否来自upload_folder,如果是就跳过重写
RewriteCond %{REQUEST_URI} !^/root/upload_folder/
# 其他请求才重定向到sample.php
RewriteRule ^.+$ sample.php [L]

这条规则的逻辑是:只有当请求的路径不是以/root/upload_folder/开头时,才会执行后面的重定向到sample.php的操作。这样你的图片请求(比如http://example.com/root/upload_folder/img1.jpg)就会直接访问真实的文件,不会被转去PHP页面了。

方案2:排除特定后缀的图片文件

如果你不想整个目录都排除,只想让图片(比如jpg、png、gif这些)不被重定向,可以用下面的规则:

RewriteEngine on
# 排除常见图片格式的请求,[NC]表示不区分大小写
RewriteCond %{REQUEST_URI} !\.(jpg|jpeg|png|gif|webp)$ [NC]
# 其他请求重定向到sample.php
RewriteRule ^.+$ sample.php [L]

这里的[NC]参数是让规则不区分大小写,所以不管是.jpg还是.JPG都能被正确匹配。这样所有图片格式的请求都会直接访问文件,其他请求依然走sample.php的逻辑。

验证步骤

修改完.htaccess之后,先直接在浏览器里输入图片的URL(比如http://example.com/root/upload_folder/img1.jpg),看看能不能正常显示图片。如果可以的话,再用Picasso重新加载,应该就能正常获取到图片了。

额外注意

要确保你的Apache服务器允许使用.htaccess文件,也就是在服务器的站点配置里,对应root目录的AllowOverride设置为All或者FileInfo,否则.htaccess里的规则不会生效哦。

内容的提问来源于stack exchange,提问作者Swati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:24:50