【问题标题】:htaccess RewriteRule read images outside documentsrootshtaccess RewriteRule 读取文档根目录外的图像
【发布时间】:2018-02-05 20:29:08
【问题描述】:

出于安全原因,我想将上传的图片存储在文档根目录之外。

这是我的 .htaccess 的(一个示例)

RewriteEngine on
RewriteRule ^images/(.*) /path/outside/documentsroots/images/$1

我正在尝试显示我的图像文件,如下面的 php 行,但没有成功

echo <img SRC="images/myPic.png">

有人可以给我一些提示吗?

谢谢

【问题讨论】:

  • 静态文件必须在文档根目录中。如果您想要外部图像,您需要创建一个 PHP 文件来接受请求,从 Web 根目录外部读取文件并输出它。一个 PHP 文件作为代理。

标签: php image apache .htaccess mod-rewrite


【解决方案1】:

如果您可以修改虚拟主机本身(或包含的配置文件),那么您可以使用the Alias directive(很遗憾,它不能在.htaccess 文件中使用):

在某些情况下,经常需要允许 Web 访问文件系统中不严格位于 DocumentRoot 之下的部分。 Apache 提供了几种不同的方法来实现这一点。在 Unix 系统上,符号链接可以将文件系统的其他部分置于 DocumentRoot 之下。出于安全原因,仅当相关目录的 Options 设置包括 FollowSymLinks 或 SymLinksIfOwnerMatch 时,Apache 才会遵循符号链接。

或者,Alias 指令会将文件系统的任何部分映射到 Web 空间。

试试

Alias /images /path/outside/documentsroots/images

【讨论】:

  • 你好 iainn,不,我只能使用 .htaccess
  • 不幸的是,您的选项在这里有点受限 - 出于安全原因,故意不容易访问文档根目录之外的文件。您需要访问更多“系统级”配置,无论是虚拟主机还是创建符号链接。如果您的 PHP 进程对文件具有读取权限,那么您也许可以创建一个脚本来代理文件 - 此链接可能有用:stackoverflow.com/questions/13357994/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多