Apache rewrite模块实现url隐藏转发

DNS设置URL转发,有些DNS服务商提供上述DNS设置,看到的时候有点头大,不知为何物?
这功能不是dns该干的活,只能说是隐藏转发,用户提出申请,域名服务商帮助解决。
下图为通过万网dns设置,启动url转发。

但是不是所有域名服务商都提供此功能,如何实现该功能是我们讨论的重点。

1 ,实现方法

使用apache rewrite 模块
具体需要apache模块为 mod_rewrite.c mod_proxy_http.c ,rewrite模块一般大家在编译apache的时候都会装上,说下后期为apache安装proxy模块的方法

本机apache 所在路径为:/usr/local/httpd2
添加模块方法
a. 进入apache源代码的modules目录
b. /usr/local/httpd2/bin/apxs -c -i -a mod_proxy.c proxy_util.c
c. /usr/local/httpd2/bin/apxs -c mod_proxy_http.c
e. /usr/local/httpd2/bin/apxs -i -a -n proxy_http mod_proxy_http.la

#选项说明:

-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行到httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行前有井号前缀(#)
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块
2,查看httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
查看modules目录
ll /usr/local/httpd2/modules/
total 16480
-rw-r–r– 1 root root 8818 Sep 11 2007 httpd.exp
-rwxr-xr-x 1 root root 16550235 Sep 12 2007 libphp5.so
-rwxr-xr-x 1 root root 79395 Jun 19 10:26 mod_proxy_http.so
-rwxr-xr-x 1 root root 198076 Jun 19 10:24 mod_proxy.so
证明安装成功
3,编辑http.conf
添加如下内容:

ServerAdmin tech@5ivpn.com
ServerName i.5ivpn.com
RewriteEngine On
RewriteRule ^/$ http://www.google.com/ [P]

注#[P]说明
proxy|P (强制为代理 proxy)

此标记使替换成分被内部地强制为代理请求,并立即(即, 重写规则处理立即中断)把处理移交给代理模块。 你必须确保此替换串是一个有效的(比如常见的以 http://hostname开头的)能够为Apache代理模块所处理的URI。 使用这个标记,可以把某些远程成分映射到本地服务器名称空间, 从而增强了ProxyPass指令的功能。

注意: 要使用这个功能,代理模块必须编译在Apache服务器中。 如果你不能确定,可以检查“httpd -l”的输出中是否有mod_proxy.c。 如果有,则mod_rewrite可以使用这个功能; 如果没有,则必须启用mod_proxy并重新编译“httpd”程序。

4,重启apache,Apache rewrite模块实现url隐藏转发完成,修改本机hosts测试

RSS 2.0 | Trackback | Comment

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

click to changeSecurity Code