【问题标题】:Is it possible to Server Side Include something above webroot?服务器端是否可以在 webroot 之上包含一些内容?
【发布时间】:2010-12-17 14:44:19
【问题描述】:

跟进我的(flop of a) question(!), here。正如那里的帖子中所说,希望在 cmets 中澄清了一点;我无法让virtual SSI #include 查看我网站的根目录上方。绝对路径从根目录开始查找,相对路径以../ 开头,我在日志中得到Invalid URI in request。所以我认为这是不可能的,但部分认为我的服务器设置可能只是在某个地方丢失了一些东西。我是否应该寻求另一种包含(PHP?)的方式,我不希望,但我必须让这个工作。我敢肯定那里一定有一些关于此的信息,但是对于我所有的搜索,我发现没有任何帮助。可能我的谷歌技能还不够好。

哦,服务器是 Apache 2。

谢谢。

【问题讨论】:

    标签: apache ssi


    【解决方案1】:

    SSI virtual 指令基于 URL 而不是文件,正如您在 Apache Tutorial: Introduction to Server Side Includes 中看到的那样(重点是我的):

    virtual 属性可能更有用,并且应该指定一个相对于所提供文档的 URL。它可以以 / 开头,但必须与所服务的文件位于同一服务器上

    如果您进一步研究 SSI include element 参考文档,您会发现它明确说明:

    虚拟
    该值是一个(% 编码的)URL 路径。 URL 不能包含方案或主机名,只能包含路径和可选的查询字符串。如果它不以斜杠 (/) 开头,则认为它是相对于当前文档的。

    file 命令不能包含 ../,因此,如果您正在考虑采用替代方法,请不要。

    文件
    该值是相对于包含正在解析的当前文档的目录的路径。它不能包含../,也不能是绝对路径。因此,您不能在目录结构中包含文档根目录之外或当前文档之上的文件。应始终优先使用虚拟属性。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 2019-01-01
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多