2

我无法让服务器端包含工作。我只是想将一个 html 文件包含到另一个文件中,但我似乎无法让它工作

设置

服务器是另一台运行 Windows XP 的机器(不是本地主机)。我有一个稍微旧版本的 xampp 堆栈,它只运行 Apache/2.2.11

虚拟目录(在 httpd-vhosts.conf 中)配置为

<Directory "c:\www\dev1">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

index.html 包含

A Big Block of Text<br />
A Big Block of Text<br />

<!-- #include file="test.shtml" -->

A Big Block of Text<br />
A Big Block of Text<br />

test.shtml 包含

This is another line

我得到了什么

从我的开发机器上的浏览器中,www.dev.com/index.html 显示

A Big Block of Text<br />
A Big Block of Text<br />
A Big Block of Text<br />
A Big Block of Text<br />
  • 页面源显示 !--- 包含这意味着包含文件尚未被处理
  • www.dev.com/test.shtml 显示了如上所示的文件,因此它是可访问的。

我尝试过的事情

阅读 stackoverflow 和互联网上的一堆帖子,它帮助“构建”了使其工作的基础知识(即确保选项已启用包含),但它仍然无法正常工作。

改变了

Options Indexes FollowSymLinks Includes ExecCGI to
Options Indexes FollowSymLinks Includes +Include ExecCGI to
Options Indexes FollowSymLinks +Includes ExecCGI

重新启动apache,它仍然无法正常工作

将 .htaccess 添加到与 index.html 和 test.shtml 相同的目录

Options Indexes FollowSymLinks Includes ExecCGI 
AddType text/html .shtml
AddHandler server-parsed .shtml

它仍然不起作用。

笔记。http.conf 已经有

AddType text/html .shtml
AddHandler server-parsed .shtml

启用。

是的,这可能是非常明显的事情,但我感冒了,所以如果有人能指出我正确的方向,那将不胜感激。

我尝试过的更多事情

更改包含文件以包含虚拟

我尝试了 RichieHindle 的建议,但它似乎不起作用,我已经修改了我的 .htaccess 和虚拟目录配置,以包括 .html 和 .shtml 所需的 AddType、AddHandler 组合......仍然没有

大注意:在网络服务器上,可以加载 SSI 检查网页(通过 xampp 安装目录之一中的 localhost),它告诉我 SSI 包含已启用并且正在工作,但是,请注意我的虚拟目录不在 xampp安装目录;它们在 c:/www 下是独立的 ...但如果我在虚拟目录设置和/或 .htaccess 设置中配置了上述选项,我无法弄清楚这会如何/为什么会有所不同

4

3 回答 3

6

你需要:

AddHandler server-parsed .html

?

您的 HTML 文件名为 index.html,但您仅适用server-parsed于 . s html 文件。

于 2009-09-28T21:13:52.443 回答
3

也许尝试删除空间?从:

<!-- #include file="test.shtml" -->

对此:

<!--#include file="test.shtml" -->
于 2009-09-29T01:01:25.810 回答
0

在将 html 包含在另一个 html 文件中时,我已经搜索并尝试了很多。我不想使用 .asp 或 .php 或 .xhtml。

这对我有用:在 HTML 文件中包含另一个 HTML 文件

于 2015-08-15T11:46:01.587 回答