如何解决切换大小写或其他情况以加载包含在 SSI 和 QUERY_STRING 中的文件?
在 PHP 中,我可以使用 switch case 来使用一个简单的函数:
<?PHP
switch($_SERVER['QUERY_STRING']) {
case 'example1':
include 'example1.PHP';
break;
case 'example2':
include 'example2.PHP';
break;
case 'example3':
include 'example3.PHP';
break;
default:
include 'example1.PHP';
break;
}
?>
但是如何看待 SSI?
我不工作的例子: (注意:SSI 正在使用我的 Apache ;-) )
<!--#if expr="$QUERY_STRING = 'example1'" -->
<!--#include virtual="example1.html" -->
<!--#elif expr="$QUERY_STRING = 'example2'" -->
<!--#include virtual="example2.html" -->
<!--#elif expr="$QUERY_STRING = 'example3'" -->
<!--#include virtual="example3.html" -->
<!--#else -->
<!--#include virtual="example1.html" -->
<!--#endif -->
我只收到一条错误消息:
[an error occurred while processing this directive]
提前谢谢你:-)
解决方法
好的,我发现了以下 .htaccess 并且我的示例有效...
SSILegacyExprParser on
但是存在一个有效的代码而不使用这个片段?
来源:
- SSI IF Statement error 在此论坛中
- SSILegacyExprParser Directive 在 apache.org 上
尝试使用
<!--#if expr="v('QUERY_STRING') = '/example1'" -->
您不需要为此打开旧式解析器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。