Apache下设置整站变灰方法

post by rocdk890 / 2012-2-6 0:23 Monday linux技术

这里假设apache已经在运行,因此不需要重新编译apache,只新增mod_ext_filer模块。

cd httpd-2.2.15/modules/filters
apxs -cia mod_ext_filter.c

2、修改httpd.conf
1)定义过滤器(filter)的名字(这里为graypage)和配置filter要调用程序的名字(graypage.pl)

ExtFilterDefine graypage mode=output intype=text/html cmd="/usr/local/bin/graypage.pl"

2)Directory添加SetOutputFilter graypage,添加后完整的配置类似下面这样:
SetOutputFilter表示对所有输出使用过滤器

Options Indexes FollowSymLinks
AllowOverride All
SetOutputFilter graypage
Order allow,deny
Allow from all

/var/www/htdocs为DocumentRoot的路径。
3.创建/usr/local/bin/graypage.pl,内容如下:

#!/usr/bin/perl my @lines = <STDIN>;
open GRAYLINE, "/var/www/htdocs/gray-css.txt" or die "cant't find the css file.";
my @graylines = <GRAYLINE>;
print @lines,@graylines;

注意加上可执行权限:chmod +x /usr/local/bin/graypage.pl
注:/var/www/htdocs/假设为documnentroot路径。

4.创建/var/www/htdocs/gray-css.txt,内容如下:

<style type="text/css">html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style>

这段代码是使IE类浏览器变灰的CSS。(Firefox下无效)

5.重启Apache
apachectl graceful

提示:
很多站点是租用的服务器,可能没有权限修改web服务器,那么可以简单的在css文件(如果有全局css最好,比如WordPress的style.css)最后加入

html{filter: gray;}

除非是全局css,否则只会让某个页面变灰,而不能实现直接修改web服务器那样让所有页面都变灰。

夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-124.html

标签: apache 模块 设置 整站 变灰

评论: