`

apache模块开发之content hander,读取配置,输出内容替换过滤器,url域名替换过滤器

 
阅读更多

 

  apache-replace-module  代码在https://github.com/zhwj184/apache-replace-module,示例都是从网上找的修改验证过的。apache版本2.4.4

=====================

 

apache module develop demo,apache 模块开发

 

对输出结果进行正则替换模块, apache response content replace module,比如域名切换对所有输出url进行替换

 

apache安装完成之后,使用下面这个命令编译各个模块为so文件

 

    /usr/local/apache/bin/apxs -c helloworld.c 

    /usr/local/apache/bin/apxs -c urlreplace.c

    /usr/local/apache/bin/apxs -c urlreplacefilter.c

    /usr/local/apache/bin/apxs -c line-editor.c 

 

编译完之后会在当前目录的.libs下面生存.so的文件,正是apache的so文件。

 

    helloworld.c 是演示输出一段字符串helloworld的content handler,

    urlreplace.c 是演示读取http.conf配置之后输出的content handler,

    urlreplacefilter.c 是演示读取http.conf配置并将输出小写转为大写的输出过滤器,apache自带的demo做的修改。

    line-editor.c 是对输出内容进行正则替换等内容替换的输出过滤器,已经开源的东西,可以实现我们的功能,对输出页面的url域名进行正则替换,项目url为:http://apache.webthing.com/mod_line_edit/。

 

使用方式如下:在http.conf加入如下配置

 

    #helloworld.c 对应的配置

    LoadModule helloworld_module mylib/helloworld.so

    <Location /helloworld>

      setHandler helloworld

    </Location>

  

    #urlreplace.c的配置

    srcpath *.china.aaa.com

    descpath *.bbb.com

    LoadModule pathreplace_module mylib/urlreplace.so

    <Location /pathreplace>

      setHandler pathreplace

    </Location>

  

    #urlreplacefilter.c的配置

    LoadModule urlReplace_filter_module mylib/urlreplacefilter.so

    urlReplaceFilter on

  

    #line-editor.c的配置

    srcpath *.china.alibaba.com

    descpath *.1688.com

    LoadModule line_edit_module mylib/line-editor.so

    SetOutputFilterline-editor

    SetEnvLineEdit "text/plain;text/css;text/javascript;text/html"

    LERewriteRule CHINA.ALIBABA.COM 1688.com [R]

 

 

其中line-editor.c的配置演示如下:比如我们在apache的htdocs下面有个index.htm

    

    <html><body><h1>It works! WWW.CHINA.ALIBABA.COM</h1></body></html>

 

输出则为:

    

    It works! WWW.1688.com

 

0
3
分享到:
评论

相关推荐

    Laravel开发-lumen-api-hander

    本项目“Laravel开发-lumen-api-handler”聚焦于如何在Lumen中优雅地处理API异常,确保向客户端返回结构化的、一致的错误信息。下面我们将详细探讨Lumen API异常处理的相关知识点。 首先,理解Lumen的基础架构是...

    Hander的使用

    在Android开发中,Handler是一种非常重要的机制,它用于在主线程和子线程之间进行通信,处理异步消息。本文将深入探讨Handler的使用,并结合给出的标签"源码"和"工具"来分析其核心原理。 首先,我们了解Handler的...

    jax_rpc webservices hander头增加用户密码

    最后,关于提到的"压缩包子文件的文件名称列表"hander2,这可能指的是处理程序的实现或配置文件。在实际开发中,这些文件通常包含在项目的类路径或部署包中,以便服务器能够找到并使用它们。 总结起来,JAX-RPC Web...

    yyl-hander:yyl 打包过程中用到的方法,提取出来 让 yyl 主体 和 seed 包 公用一套,方便开发

    《yyl-hander:JavaScript模块化开发的共用方法封装》 在JavaScript开发中,模块化已经成为提升代码可维护性和复用性的重要手段。本文将深入探讨“yyl-hander”这一工具,它是一个用于打包过程中的方法集合,旨在让...

    xmind-hander源码.rar

    xmind_hander源码在测试过程中,测试用例的管理和统计是非常重要的环节,对于测试质量的保证和测试效率的提高都具有重要意义。Xmind是一款非常优秀的思维导图工具,可以方便地创建和管理测试用例。而其中的自动统计...

    hander_sy2.rar_android

    在Android应用开发中,Handler是实现线程间通信的关键组件,尤其对于UI更新与后台任务同步至关重要。"hander_sy2.rar_android" 提供的是一个关于Android Handler的第二部分学习实例,非常适合Android开发的初学者。 ...

    hander_sy1.rar_android

    在Android开发领域,Handler是实现线程间通信的重要机制,特别是在UI更新和异步任务处理中扮演着核心角色。标题“hander_sy1.rar_android”表明这是一个关于Android Handler的实例教程,适合初学者进行学习。下面...

    UEditor4DotNET.rar

    UEditor4DotNET.rar 是一个针对.NET平台的UEditor在线编辑器的压缩包。UEditor是一款功能强大的富文本编辑器,广泛应用于网站内容编辑、论坛发帖等场景,支持多种后端语言,包括PHP、Java以及.NET。这个分享主要关注...

    Handler方法

    ### Handler方法在Android开发中的应用 #### 一、Handler机制简介 在Android开发过程中,`Handler`机制主要用于解决线程间通信的问题。特别是在主线程(UI线程)与子线程之间的消息传递方面表现得尤为突出。由于...

    handler机制

    Handler机制是Android系统中实现线程间通信的关键技术之一。在Android应用开发过程中,经常会遇到需要在后台线程执行耗时任务,然后更新UI的情况。由于Android SDK规定了UI组件只能在创建它的线程中进行修改(通常...

    Android应用源码之HandlerMessage1_HandlerMessage.zip

    在Android应用开发中,HandlerMessage1_HandlerMessage是一个关键的主题,涉及到Android系统中的消息处理机制,尤其是Handler、Message和Looper的使用。这些组件是Android异步编程的重要组成部分,用于解决UI线程与...

    python毕业设计爬虫与搜索引擎+源代码+文档说明

    Python2.7的版本# 需要的运行环境:- Ubuntu14.04、Python2.7、BeautifulSoup4、urllib2等# 爬虫调度端## URL管理器:管理待抓取URL集合和已抓取URL集合,防止重复抓取和循环抓取。- 添加新的URL到待爬取集合中- ...

    Adobe Reader(显示文档缩略图)

    Adobe Reader是一款广泛使用的PDF(Portable Document Format)阅读器,由Adobe公司开发,旨在方便用户查看、打印和注释PDF文件。这款软件的核心功能是提供一个直观的界面来浏览PDF文档,而其特色在于它能够在文件...

    创建execl导入工具类的步骤

    在.NET开发环境中,创建一个Excel(通常指.xlsx格式,由Microsoft Office Excel提供的)导入工具类可以帮助我们方便地读取和处理Excel数据,并将其转化为应用程序所需的业务对象。以下是一些关键步骤,结合给定的...

    模拟温度监控系统源码(周期绘制温度趋势的UI界面(Hander处理)).zip

    模拟温度监控系统源码(周期绘制温度趋势的UI界面)是一个用于学习和实践温度监控和数据采集系统的资源。该源码通过模拟温度数据,并利用定时器周期性地产生这些数据,同时在用户界面上实时绘制温度变化的趋势图。...

    Android Handler 图片浏览器

    在Android开发中,Handler是一种非常重要的组件,它与线程通信密切相关,特别是在更新UI和处理异步任务时。本文将深入探讨如何利用Handler构建一个图片浏览器,并结合计时器(Timer)来实现特定功能。 首先,理解...

    php利用curl获取远程图片实现方法

    去掉,重新启动IIS或者APACHE就可以了。 代码如下: /* *@通过curl方式获取指定的图片到本地 *@ 完整的图片地址 *@ 要存储的文件名 */ function getImg($url = "", $filename = "") { //去除URL连接上面可能的引号...

    hander:简单易用的实用工具,可满足您的roblox游戏需求

    处理者由 6.0.2。生成。入门要从头开始构建该地点,请使用: rojo build -o " Hander.rbxlx " 接下来,在Roblox Studio中打开Hander.rbxlx并启动Rojo服务器: rojo serve 如需更多帮助,请查阅。

    solr-dataimport-scheduler:自动从code.google.compsolr-dataimport-scheduler导出

    Solr Data Import Hander Scheduler 说明:Solr官方提供了很强大的Data Import Request Handler,同时提供了一个简单的 Scheduler,Url:示例中的 Scheduler 只支持增量更新,不支持定期重做索引,因此我做了一个简单...

    转到带有上下文共享的基于http.Hander的中间件堆栈-Golang开发

    也可以是http.Handlers,也可以嵌入其中,该解决方案还可以针对每个请求提供上下文共享的解决方案,可以自由混合带有和不带有上下文的中间件(相同的接口),具有调试助手,低内存占用量,易于创建适配器/包装器的...

Global site tag (gtag.js) - Google Analytics