服务器端包括似乎不再起作用 - “[处理此指令时发生错误]”

时间:2013-06-13 12:35:53

标签: html ssi

我们有一个多年来一直使用服务器端的页面。最近它停止了工作。没有对页面进行任何更改

<!--#include virtual="..\..\includes\nav.include" -->

靠近名为contact.html的页面底部

'nav.include'页面只包含导航栏的html。没有javascript。没有服务器端脚本。只是html。

是否有某些设置需要设置,以使SSI在此处实现的方式工作(包括在html文件中具有不常见扩展名的文件)?

7 个答案:

答案 0 :(得分:1)

你在使用GoDaddy吗?他们对我的网站做了同样的事情,我在他们的论坛上找到了一个说使用包含文件而不是包含虚拟文件的人。

答案 1 :(得分:1)

我昨天发现的解决方案:

  1. 我复制并将我的所有页面重命名为.php(保留原始的html文件以防万一!)
  2. 我已用

    替换了所有{&lt; #include virtual =“folder_name / file_name.ext” - &gt;}
        <?php include "folder_name/file_name.ext" ; ?> 
    

    具有适当数量的点和斜线,具体取决于页面在我的文件夹层次结构中的位置。 (上面的{}仅用于标记代码)

  3. 最后,我将原始index.html重命名为其他名称,以便选择index.php而不是index.html
  4. 这似乎正在解决 - 我仍在测试所有页面和链接 - 这是一项非常繁琐且耗时的练习!

    包括语法:

    在php文件中使用

        <?php include "..//folder_name/file_name.ext" ; ?>
    

    在html文件中使用

        <!--#include virtual="../folder_name/file_name.ext" -->
    

    在上面的语法中以“......”和“///”的数量进行实验以获得正确的组合!!!!

    1. 对我来说,我所有的包含都是文件夹ABC中的小html文件,直接位于webroot下。
    2. 对于ABC的兄弟文件夹下的页面,即直接在webroot下的其他文件夹中,“..//”是有效的点数和斜线数。
    3. 对于直接在webroot中的页面(即不在webroot内的任何文件夹中),没有任何点或斜杠的folder_name / file_name.ext已经有效。
    4. 我没有时间查看层次结构中任何其他级别所需的点数和短划线数量!
    5. 我希望这有帮助!

答案 2 :(得分:1)

刚切换到Godaddy服务器,我的SSI停止工作。我用以下内容制作了一个.txt文件:

AddHandler服务器解析.html

我将它上传到公共html文件夹,然后重命名为.htaccess,一切都开始有效了。

答案 3 :(得分:0)

我有太多文件要将所有扩展名转换为PHP,所以我必须找到另一个答案,如果可能的话。

对我来说,有一段时间,将include virtual交换到include file似乎有所帮助,但几天之后再次破裂。我猜GoDaddy并没有完成对SSI配置的纠结。 O_O

截至今晚,解决方案是将所有 相对 路径转换为 绝对 规范。站点根目录。例如,我不得不转换:

<!--#include virtual="..\..\includes\nav.html" -->

要:

<!--#include virtual="\includes\nav.html" -->

使用这种方法,我能够将HTML文件包含在其他HTML文件中。

我在我的一个页面上发现了混合绝对和相对路径规范的内容。

HTH

答案 4 :(得分:0)

我在GoDaddy托管网站上经常看到这个问题。我必须进入服务器配置页面,禁用SSI,保存设置,然后重新启用SSI并选中“在.HTM和.HTML文件上使用SSI”,然后它再次开始工作。

问题在于GoDaddy的一面。出于某种原因,它忘记了它需要解析文件中的SSI,直到您关闭并打开该选项。他们的Tier-2支持仅建议在Include命令上使用Virtual而不是File ...这是荒谬的,因为这不仅不会改变事物,SSI包括大部分时间的工作......直到它没有吨。

答案 5 :(得分:0)

我还将旧的.html页面更新为.php,并在显示某些页面[在处理此指令时发生错误]时替换所有页面上的一些php include语句。

显示错误的页面也引用了一个旧的.ssi文件,即使在它指向的目录中也是如此。我将旧的包含代码删除到这些页面中不存在的.ssi文件中,并修复了错误。

答案 6 :(得分:0)

当你在这样的代码html文档中有这个

时会发生这个错误
<!--#My awesome documentatacion-->

修复它删除#,就像这样

<!-- My awesome documentatacion-->