让apache支持shtml,并解析其中的php代码

2016-07-29 13:43:33
如果您的shtml文件中还包括php代码的时候,就不仅要配置SSI支持,还要将shtml映射到php处理程序
在很久很久以前,我们做网页的时候,经常用到一种技术,叫做Server Side Include,简称SSI,通常这类文件的后缀名是.shtml。最近碰到一个很老的系统是这种写法的,而且还混合了php代码在里面,这样就要求服务器端既能解析SSI的指令代码,又能解析php代码。

我们的服务器是Apache的,打开apache的配置文件 httpd.conf
搜索shtml,将下面的两行代码前面的注释去掉,其中第二行的INCLUDES是apache的一个内置filter
这样就可以解析SSI指令代码了

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

接下来,要让.shtml文件也能支持php代码,那么我们就要把.shtml类型的文件增加一个php处理程序,
用下面的指令即可,
AddHandler application/x-httpd-php .shtml

这样,你的.shtml文件中如果包含php代码就可以正常解析了。


下面就以一个虚拟主机的配置为例,大体上是这样的


<VirtualHost *:80>
DocumentRoot "/data/www/hutuseng.com"
ServerName www.hutuseng.com

<Directory "/data/www/hutuseng.com">
AddHandler application/x-httpd-php .shtml
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>