- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 VirtualHost 里面替换 </body>
元素:
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//stats.mydomain.com/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//stats.mydomain.com/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code --></body>
我需要在 VirtualHost 部分执行此操作,因为我无法直接修改网站代码。
我在考虑一些 apache 模块,例如 mod_substitute、mod_sed、mod_include。
我需要将这个 PIWIK 统计代码添加到每个页面。
这样好吗?这些模组中的哪一个最适合做这个?或者也许还有其他解决方案?
最佳答案
以下是 mod_ext_filter 的解决方案看起来非常强大:
启用 Apache 模块:
a2enmod ext_filter
在 Apache 配置文件的 VirtualHost
部分,添加过滤器定义:
ExtFilterDefine my_html_filter mode=output intype=text/html cmd="/usr/bin/php5 /var/www/data/myfilter.php"
SetOutputFilter my_html_filter
ExtFilterDefine
- 该指令定义过滤器my_html_filter
- 这是我们的过滤器名称mode=output
- 告诉 Apache 处理响应intype=text/html
- 指定应过滤的文档的 MIME 类型cmd="/usr/bin/php5/var/www/data/myfilter.php"
- 指定要运行的外部命令SetOutputFilter
- 该指令激活过滤器PHP 文件 /var/www/data/myfilter.php
的内容:
<?php
$stdin = fopen('php://stdin', 'r');
while($line = fgets($stdin)){
$line = str_replace('</body>',"
<!-- Piwik -->
<script type='text/javascript'>
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u='//stats.mydomain.com/';
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src='//stats.mydomain.com/piwik.php?idsite=1' style='border:0;' alt='' /></p></noscript>
<!-- End Piwik Code -->
</body>", $line);
echo $line;
}
fclose( $stdin );
?>
重新启动 Apache:
service apache2 restart
关于php - VirtualHost 模块在交付给客户之前搜索和替换 HTML 网站代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38954627/
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我有许多 Apache VirtualHosts,我为每个虚拟主机使用专用的 SSLCertificateFile。 这是一个 VirtualHost 的配置示例: ServerName
好吧...我尝试使用 ServerName something.ooo ServerAlias www.something.ooo 但看起来.. 您不能使用 ServerAlias,除非它在 中
我正在尝试使用“ngrok http -host-header = client1.dev 80”在我的站点目录中建立一个客户端站点,访问该URL时得到404。经过一些试验后,如果我将index.ht
我正在尝试为 mampstack(不是 MAMP)设置一个虚拟主机。这是我到目前为止所做的: 在我的 httpd.conf 文件中,我检查了 Listen 8080 这是正确的(我正在监听端口 808
Noob Here.. 我的 Ubuntu 机器上有以下文件夹结构 /var/www/ /folder1 /folder2 现在我想将我的 url xyz.com 重
我有一个带有 Apache 的 debian 设置。我禁用了“默认”站点并暂时添加了一个站点。 我想禁止访问除各种虚拟主机下的所有内容。 DocumentRoot /var/www/mycomp
我在我的电脑上设置了几个 VirtalHosts。我想使用我的 comp 的 ip 地址从另一台 PC 访问我目前正在处理的站点,但是我尝试过的每个配置都会将我带到不同的虚拟主机(实际上是我设置的第一
我想在本地机器上为该主机创建虚拟主机和子域,这样我的 localhost 就可以作为一个网站,就像我不需要在 url 栏中写 localhost 一样: localhost ---> mysite.
我尝试在同一个 VPS 上托管多个域,使用 HHVM 为页面提供服务。 我想知道如何编写 VirtualHost 以便在我的/var/www 目录中指向正确的文件夹? 例如 xxx.domain.co
我一直在阅读有关 Vagrant 的内容,我发现它对我的开发非常有用。我目前正在管理一系列服务(邮件、Web、LDAP、文件共享等),并且经常其中一个服务出现故障并需要快速备份。是否可以(并推荐)使用
我的 tomcat 中有 server.xml 文件的以下部分。 xyz-mydomain1.com abc.mydomain1.com 有什么方法可以通过对我可以放
我在 linux 环境中运行 apache2 网络服务器。我想将用户重定向到自定义错误页面。所以创建了错误页面并在 htdocs 中创建了符号链接(symbolic link),也是这样。静态文件->
我的 tomcat 中有 server.xml 文件的以下部分。 xyz-mydomain1.com abc.mydomain1.com 有什么方法可以通过对我可以放
我更新/etc/hosts 并测试 ping,域正常工作; 我使用ampps管理工具添加域,并验证修改如下。 Options FollowSymLinks Indexes AllowOverrid
我有一个分配给主机(redmine 应用程序)的正在运行的生产网站。我需要将一个新应用程序作为子目录添加到同一主机。 这是在主机的基本文件夹中运行的 redmine 应用程序的当前虚拟主机配置。
我有一个在 Debian 上运行的亚马逊 EC2。还有一个域名:flavienm.com服务器运行 Apache 2.4.10 我尝试设置一个子域:eyewall:flavienm.com 在我的可用
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我将 apache 配置到我服务器的主域,如果只有那个域,它就可以正常工作: 在 httpd.conf 中: Listen maindomain.com:80 DocumentRoot "/home/
在我的 Windows 7 中一切正常。 问题是当我添加 时domain1.com 作为 VirtualHost,localhost 的 DocumentRoot 更改为 VirtualHost 的
我是一名优秀的程序员,十分优秀!