我在Apache Web服务器上托管了一个网站。另一个人每周通过从第三方软件生成的FTP将静态HTML文件上传到文件夹。
我希望在呈现每个页面时插入Goggle Analytics代码,同时保留URL,原始HTML和上传过程。我不知道文件上传的时间或页面名称(每次上传的文件数量为100)。
我最初想过设置要用PHP引擎解析的HTML;但是,这不适合,因为页面不包含PHP代码,我不会通过查找和替换来修改HTML页面。
有没有办法在页面结尾或其他方法之前使用PHP引擎处理页面注入代码?
答案 0 :(得分:5)
这是一个简单的方法,只是为了在已发布的html文件的顶级目录中的.htaccess中给出一个想法:
RewriteCond %{REQUEST_URI} ^/path/in/question/if/not/document/root/(.+\.html)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+)$ index.php [L]
index.php中的:
$ga = 'your ga tracking code';
$file = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'];
if(file_exists($file))
{
$content = file_get_contents($file);
if(false !== ($pos = strpos($content, '</body>')))
{
$content = substr($content, 0, $pos).$ga.substr($content, $pos);
}
print $content;
exit;
}
答案 1 :(得分:2)
如果你使用.htaccess
文件来解析html文件,你可以使用php auto prepend / append将一些php代码添加到文件中。 Check out this并查找自动前置或附加以了解如何自动包含文件。这也可以在.htaccess中完成。要获取apache以使php解析html文件,您可以check this out获取一些信息。我刚刚通过谷歌找到它。你应该可以使用这两个来包含一个php文件到所有的html文件。
编辑:只是一个注释,在html文件中不需要php也可以使用。 php将只使用php查找文件的部分(这不是文件)并跳过任何没有php的文件。