【问题标题】:Can htaccess check if file exists on a url or external server?htaccess 可以检查文件是否存在于 url 或外部服务器上?
【发布时间】:2016-07-13 20:31:21
【问题描述】:

.htaccess 可以检查文件是否存在于另一台服务器或 url 上? 我想使用 .htaccess 检查存储服务器上是否存在文件,然后执行重写条件。

RewriteCond %{DOCUMENT_ROOT}/i%{REQUEST_URI} -f

如果我改成

RewriteCond http://external.example.com/i%{REQUEST_URI} -f

它不会工作。我将文件存储在单独的服务器上,由于空间不足,需要在 Web 服务器上进行检查。有没有办法让它成为可能?

【问题讨论】:

    标签: apache .htaccess mod-rewrite ftp server


    【解决方案1】:

    很遗憾,这是不可能的。 -f 属性测试将 TestString 视为 pathname 并测试它是否存在,并且是一个常规文件(参见 the docs 中的 -f 部分)。因此,这个属性测试,很像-d,是一个文件系统测试,不能测试远程服务器上的文件。

    如上所述,测试将字符串视为路径名,它是标识文件系统上的文件的序列。路径名始终从您的根目录或当前工作目录开始。因此,路径名不能包含对外部主机的引用,例如external.example.com。请参阅 路径名 定义here

    【讨论】:

    • 据我所知,没有。如果可以做一个子请求来检查是否发送了 200 响应代码,表明请求的路径代表现有资源,那就太好了。最好直接引用外部服务器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 2012-05-15
    相关资源
    最近更新 更多