我不知道Apache或.htaccess
是否正确,但我想知道如何将HTML代码插入public_html
目录中的所有页面,有点像在21世纪初,他们在所有页面中插入横幅。
注意:我不是在谈论手动编辑每个页面并添加SSI
或PHP的include()
答案 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目录块:
答案 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,但你可以把它在任何地方,只要给出正确的道路,你会没事的