是否有可能服务器端包含webroot以上的东西?

时间:2010-12-17 14:44:20

标签: apache ssi

跟进我的(flop of a) question(!), here。正如在帖子中所说,希望在评论中澄清一点;我无法让virtual SSI #include查看我网站的根目录。绝对路径只是从根目录看,并且相对路径从../开始,我在日志中得到Invalid URI in request。所以我认为这是不可能的,但部分思考可能是我的服务器设置只是在某处遗漏了某些东西。我是否应该转向另一种方式来包含(PHP?),我不愿意,但我必须让它工作。我确信必须有一些关于此的信息,但对于我所有的搜索,我发现没有任何帮助。也许我的谷歌技能不是最好的。

哦,服务器是Apache 2。

感谢。

1 个答案:

答案 0 :(得分:0)

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

  

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

如果您对SSI include element参考文档进行深入研究,您会发现它已明确说明:

  

<强>虚拟
  该值是(%-encoded)URL路径。 URL不能包含方案或主机名,只能包含路径和可选的查询字符串。如果它不以斜杠(/)开头,那么它将被认为是相对于当前文档。

file命令不能包含../所以如果您正在考虑遵循该替代道路,请不要。

  

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

希望有所帮助。