通过Apache在所有页面中插入HTML代码?

时间:2015-08-03 17:49:20

标签: php html apache .htaccess

我不知道Apache或.htaccess是否正确,但我想知道如何将HTML代码插入public_html目录中的所有页面,有点像在21世纪初,他们在所有页面中插入横幅。

注意:我不是在谈论手动编辑每个页面并添加SSI或PHP的include()

3 个答案:

答案 0 :(得分:1)

您可以使用以下方法使用.htaccess将HTML代码插入特定目录中的所有页面:

<Directory "/public_html/">
    # Prepend to top
    php_value auto_prepend_file "/dir/path/banner.php"

    # Append to bottom
    php_value auto_append_file "/dir/path/footer.php"
</Directory>

以下文章讨论了.htaccess如何允许您为每个页面请求添加/附加html:

http://davidwalsh.name/prepend-append-files-htaccess

以下文章讨论了如何使用.htaccess目录块:

htaccess <Directory> deny from all

答案 1 :(得分:0)

您可以通过使用ExtFilterDefine和SetOutputFilter创建自定义输出过滤器来执行此操作,并运行一个读取stdin的PHP脚本://然后插入所需的代码并将其输出。查看http://httpd.apache.org/docs/2.2/mod/mod_ext_filter.html即可开始使用。

如果您只关注PHP输出而不是静态HTML文件,可以使用auto_prepend_file运行调用ob_start()的脚本,使用auto_append_file运行调用{{1}的脚本并且在回显之前将代码插入到$ html中。

答案 2 :(得分:0)

我可以通过Apache将html插入所有页面,但仅适用于由我的apache托管的网站,而不是所有网站都通过我的apache代理服务器。

这是它的工作原理。 我设置了一个XAMPP,为apache 2.4下载mod_layout 5.1。 (安装mod_layout很简单,如果你使用XAMPP for windows,只需下载mod_layout.so 5.1 for windows并将其放到你的apache模块文件夹$ home / apache / module,然后将配置DSO添加到你的httpd.conf LoadModule layout_module modules / mod_layout.so - 如果你使用linux或其他操作系统,你应该为linux下载mod_layout.so,然后运行make命令来安装)

在为Windows安装mod_layout.so之后,只需将此代码放在.htaccess文件或httpd.conf上,您将获得html插入所有页面:

<IfModule mod_layout.c>
AddOutputFilter LAYOUT html 
AddOutputFilter LAYOUT htm 
AddOutputFilter LAYOUT shtml 
AddOutputFilter LAYOUT shtm 
AddOutputFilter LAYOUT cgi 
AddOutputFilter LAYOUT php 
LayoutFooter "C:/xampp/apache/cgi-bin/footer.php"
</IfModule>

C:/xampp/apache/cgi-bin/footer.php是你放置html或php文件的地方,在我的情况下是C:/xampp/apache/cgi-bin/footer.php,但你可以把它在任何地方,只要给出正确的道路,你会没事的