SSI - 测试文件是否存在
我正在基于变量动态添加ssi包含,并且我希望能够在文件不存在的情况下具有默认包含。即:
if /file/testthisfile.ssi exists
add /file/testthisfile.ssi
else
add /file/default.ssi
这可能吗?
谢谢!
没有找到相关结果
已邀请:
5 个回复
枫湃揩乾纲
因此,如果文件不存在,您可以设置默认值。 必须强调这只适用于简单的情况,但这是一个很好的小工作!
抬澈帅沮
可能需要在apache配置中启用对-A标志的支持。 在这个SSI中使用的表达式已经被分解到这里记录的apache表达式模块中 http://httpd.apache.org/docs/current/expr.html 但-A标志也可用于“传统”SSI表达式解析器。
炉挤仙挟
葛瞎说漓
它使用PHP脚本来执行所有文件检查:
我传递两个文件名,目标文件和备份/默认文件,脚本检查第一个,如果找不到,则使用第二个。 这种方法引出了一个问题,为什么在PHP可用时使用SSI?在某些情况下,特别是在遗留系统中,可能存在基于SSI的大型网站,并且解决问题的解决方案虽然不那么优雅。 PHP不是必需的,PERL脚本也可以。 最后,我尝试尝试使用PHP的
但我无法弄清楚如何在PHP,Apache和SSI之间传递环境变量(我也尝试设置$ _SERVER和$ _ENV变量但没有成功)。
坝镰补翔奋
来自docs(http://httpd.apache.org/docs/current/expr.html): 如果string是有效文件,则为True,可通过所有服务器访问 当前配置的该路径的访问控制。这用了 内部子请求进行检查,所以要小心使用 - 它可以 影响服务器的性能! 要使示例工作,Apache用户将需要访问您正在测试的direcotory / flag。您可能还需要.htaccess或httpd.conf文件中的以下内容: