我无法让服务器端包含工作。我只是想将一个 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 设置中配置了上述选项,我无法弄清楚这会如何/为什么会有所不同