服务器端的任何方式都包括获取包含它的文件的文件名或URL?

时间:2010-06-09 17:55:25

标签: apache server-side-includes ssi

服务器端包含有什么方法可以确定它包含在哪个文件中?我想做这样的事情:

<ul id="menu">
    <!--#if expr="$URL = index.html" -->
        <li><span>Home</span></li>
    <!--#else -->
        <li><a href="index.html">Home</a></li>
    <!--#endif -->
    <!--#if expr="$URL = about.html" -->
        <li><span>About us</span></li>
    <!--#else -->
        <li><a href="about.html">About us</a></li>
    <!--#endif -->
    <!--#if expr="$URL = contact.html" -->
        <li><span>Contact us</span></li>
    <!--#else -->
        <li><a href="contact.html">Contact us</a></li>
    <!--#endif -->
</ul>

我只需要知道是否可以使用服务器端包含,如果是,那么语法是什么。

我做了一些关于服务器端包含的研究,并试过这样的事情:

<!--#if expr="DOCUMENT_URI = /contact.html" -->
    this is the contact page
<!--#endif -->

我在输出中看到了这一点:

  

[处理此指令时出错]这是联系页面

就像理解命令一样,但由于某种原因导致错误。

我尝试使用SCRIPT_FILENAME,REQUEST_URI,SCRIPT_NAME和DOCUMENT_NAME代替DOCUMENT_URI进行类似的操作,无论是否有所需的路径信息,并且在每种情况下,我都能够使其工作,但我收到了错误消息。有没有人知道会导致什么?

1 个答案:

答案 0 :(得分:0)

我明白了:

<!--#if expr='"$DOCUMENT_URI" = "/contact.html"' -->
    This is the contact page.
<!--#endif -->