`
xu_wccq
  • 浏览: 130957 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

添加mod_rewrite.c模块

阅读更多
/etc/apache2/httpd.conf

加入

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

如果你的服务器apache还没有安装,那很简单,在编译apache时将mod_rewrite模块编译进去就可以,相关文档可以在 www.gbunix.com中找到。如果你的apache已经安装好了,现在只想编译出mod_rewrite.so模块,在apache中进行加载,下面我们就介绍这个方法。

以Solaris操作系统进行举例:

# PATH=/usr/local/bin:/usr/sfw/bin:/usr/ccs/bin:$PATH
# export PATH
# which gcc
# which make

# find ./ -name mod_rewrite.c //在apache的安装目录中寻找mod_rewrite.c文件
# cd PATH/to/mod_rewrite.c //进入包含mod_rewrite.c文件的目录
# apxs -c mod_rewrite.c //apxs请指定绝对路径,在你当前正在使用apache的bin目录里
# apxs -i -a -n mod_rewrite mod_rewrite.c


[color=indigo]以下是加GeoIP模块的install方法。借鉴:[/color]
To build mod_geoip as a dynamically loadable module:

apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c

-I/usr/local/include is where the GeoIP.h header file is installed
-L/usr/local/lib is where the libGeoIP library is located

This will put the correct LoadModule statement.



如果没有什么错误的话,应该在你的apache的modules目录中编译出一个mod_rewrite.so文件。

编辑httpd.conf文件,确认httpd.conf中已经包含mod_rewrite.so的加载语句,如下:

LoadModule rewrite_module modules/mod_rewrite.s


怎么才能向一个已安装的程序里面添加模块?



前提:你的apache是支持dso模式的,否则只能重新完全编译:
方法1:
安装一份全新全新的完全相同版本的apache到另外一个目录,记得打开你需要的模块,然后把安装之后的模板拷贝或者调用到现在的。

方法2:
apxs方法,这个很简单:http://w.yi.org/ftp/FAPM/apache/Apache2/zh/programs/apxs.html
apxs - APache扩展工具
apxs是一个为Apache超文本传输协议(HTTP)服务器编译安装扩展模块的工具, 用于编译一个或多个源程序或目标代码文件为动态共享对象, 使之可以用mod_so中的LoadModule指令 在运行时刻加载到Apache服务器中。

因此,要使用这个扩展机制,你的平台必须支持DSO特性, 而且Apache的httpd必须内建了mod_so模块。 apxs工具能自动探测是否具备这样的条件,你也可以自己用这个命令手动探测

$ httpd -l

该命令的输出列表中应该有mod_so模块。 如果所有这些条件均已具备, 则可以很容易地借助apxs安装你自己的DSO模块以扩展Apache服务器的功能:


$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/modules/mod_foo.so
chmod 755 /path/to/apache/modules/mod_foo.so
[activating module `foo' in /path/to/apache/etc/httpd.conf]
$ apachectl restart
/path/to/apache/sbin/apachectl restart: httpd not running, trying to start
[Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module
/path/to/apache/sbin/apachectl restart: httpd started
$ _



其中的参数files可以是任何C源程序文件(.c)或者目标代码文件(.o),甚至是一个库(.a)。 apxs工具会根据其后缀自动编译C源程序,或连接目标代码和库。 但是,使用预编译的目标代码时,必须保证它们是独立地址代码(position independent code [PIC]), 使之能被动态地加载。如果使用GCC编译,则应该使用-fpic参数;如果使用其他C编译器,则应该查阅其手册,为apxs寻找相应的编译参数。

有关Apache对DSO的支持的详细信息,可以阅读mod_so的文档, 或者直接阅读源程序src/modules/standard/mod_so.c。
分享到:
评论

相关推荐

    Linux下Apache安装/增加mod_rewrite模块的方法

    它提供了丰富的功能,其中包括URL重写功能,这主要通过mod_rewrite模块实现。mod_rewrite模块允许管理员根据特定规则改变URL,这对于SEO优化、动态网站管理和实现复杂的URL路由至关重要。下面我们将详细介绍在已安装...

    linux_apache_rewrite编译配置.pdf

    URL重写功能主要由mod_rewrite模块提供,它允许管理员通过配置文件(httpd.conf)中的规则来改变请求的URL,实现动态URL到静态URL的转换、隐藏真实路径、错误页重定向等高级功能。 在Linux系统上安装Apache并启用...

    apache rewrite_module模块使用教程

    ### Apache mod_rewrite模块使用教程 #### 一、引言 Apache服务器是一款广泛使用的Web服务器软件,支持多种操作系统,包括Windows和Linux。为了更好地管理和优化网站的URL结构,Apache提供了强大的`mod_rewrite`...

    开启Apache mod_rewrite模块示例代码

    Apache mod_rewrite 是一个强大的URL重写模块,常用于优化网站的URL结构,实现SEO友好、隐藏实际路径或者实现动态URL到静态URL的转换。在Apache服务器中启用此模块,可以让我们根据预定义的规则对HTTP请求的URL进行...

    linux_apache_rewrite编译配置整理.pdf

    在Linux环境下配置Apache服务器,特别是涉及到URL重写功能时,通常需要使用mod_rewrite模块。这个模块允许我们通过定义规则来转换URL,以实现动态URL的隐藏、SEO优化或者内部路由处理。以下是关于`linux_apache_...

    apache+resin在linux的搭建.doc

    搭建 Apache 和 Resin 需要遵循一定的步骤,包括卸载 JDK、安装 JDK、安装 Apache、安装 Resin、添加 mod_rewrite 模块和添加 mod_proxy 模块。只有遵循正确的步骤,才能成功搭建 Apache 和 Resin。

    httpd-2.2.25-win32-x86-no_ssl.msi

    除了基本功能,Apache还支持广泛的模块扩展,例如mod_rewrite用于URL重写,mod_deflate用于内容压缩,mod_proxy用于代理和负载均衡,以及mod_security用于Web应用防火墙。这些模块可以根据需求启用,进一步增强...

    [其他类别]Apache 防盗连工具_apache_link.zip

    4. **使用防盗链模块mod_rewrite**:Apache的mod_rewrite模块也可以实现防盗链功能,通过更复杂的规则匹配和重写URL,阻止不合法的请求。 5. **使用X-Frame-Options**:虽然这不是针对盗链,但可以防止点击劫持...

    关于Apache_mod_rewite的中文配置和RewriteRule规则详细介绍

    AddModule mod_rewrite.c ``` 确保这两行配置没有被注释掉(即没有被`#`号覆盖)。如果被注释,取消注释即可。 三、RewriteRule规则详解 RewriteRule是mod_rewrite的核心指令,用于定义URL重写规则。其基本语法...

    apache伪静态实现

    Apache 实现伪静态的关键在于其 mod_rewrite 模块。这个模块提供了 URL 重写功能,允许我们根据预定义的规则对请求的 URL 进行转换。首先,确保你的 Apache 安装包含了 mod_rewrite 模块。如果在安装时未开启,可以...

    Apache服务器下配置URL 态化的Rewrite规则.docx

    Apache的Rewrite模块(mod_rewrite)是实现这一功能的关键。在Apache 1.x版本中,你需要确保在conf/httpd.conf配置文件中加载了Rewrite_module,相关的配置代码如下: ```apacheconfig LoadModule Rewrite_module ...

    mod_rewrite-cheat-sheet-v2.pdf

    `mod_rewrite` 是 Apache HTTP 服务器的一个模块,它允许管理员基于规则来重写 URL,并且执行多种类型的 URL 转换和过滤操作。这对于实现网站的 SEO 优化、URL 重定向、内容管理等非常有用。`mod_rewrite-cheat-...

    如何在Apache 服务器下配置URL 静态化的 Rewrite 规则.docx

    - **确认Apache版本与mod_rewrite模块**: 首先需要确保Apache已经正确安装,并且启用了mod_rewrite模块。可以通过检查Apache配置文件httpd.conf来完成这项任务。 - **Apache 1.x**: 查找`LoadModuleRewrite_module ...

    php实现依据url自动生成缩略图的方法__2.docx

    IfModule mod_rewrite.c RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ...

    htaccess实现伪静态方法.docx

    需要在Apache服务器的配置文件中加载Rewrite模块,打开Apache的配置文件httpd.conf,添加或修改以下配置项: LoadModule rewrite_module modules/mod_rewrite.so 保存后重启Apache服务器即可生效。 第二步:编写...

    Apache 2.0.39源代码

    6. **SSL/TLS支持**:虽然不包含在基本的2.0.39版本中,但可以添加mod_ssl模块来实现HTTPS。这涉及到加密协议的处理和证书管理。 7. **日志记录**:Apache可以记录详细的访问日志,用于分析服务器性能和安全性。这...

    Apache伪静态配置

    2. **添加Mod_rewrite模块** 在httpd.conf文件中添加以下代码: ``` AddModule mod_rewrite.c ``` 这一步骤是为了确保服务器加载了Mod_rewrite模块。 3. **编辑虚拟主机配置文件** 编辑Apache的虚拟主机...

    apache2.2.17安装

    例如,`mod_rewrite`模块用于URL重写,`mod_security`用于增强服务器的安全性,而`mod_deflate`则用于内容压缩。每个模块都有其特定的配置选项和用法,学习和掌握这些模块的使用可以帮助优化服务器性能和安全性。 ...

Global site tag (gtag.js) - Google Analytics