`
zl198751
  • 浏览: 278462 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

apache的跳转和转发(转载)

阅读更多
apache的跳转和转发
weblogic中加默认用户和密码
startWebLogic.sh
-Dweblogic.management.username=weblogic -Dweblogic.management.password=weblogic

apache中设置代理:
NameVirtualHost 10。88。3。7:80
<VirtualHost 10。88。3。7:80 >
ServerAdmin abc@123.com
ServerName 10.88.3.7
ErrorLog logs/rsa-error.log
CustomLog logs/rsa-access.log common
ProxyPass / http://10.88.3.5:7001
ProxyPassReverse / http://10.88.3.5:7001
</VirtualHost>
本来我可以访问http://10.88.3.5:7001/zhcxxt
我现在访问http://10.88.3.7/zhcxxt就可以了

apache中设置跳转:
修改httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so   
RewriteEngine On
RewriteRule ^/(.*) http://www.csdn.net/ [R,L]   
#无论http://localhost/XXX中XXX有多长都转到CSDN.net

RewriteRule ^/$ http://www.csdn.net/ [R,L]   
#只有当输入http://localhost时跳转,输入http://localhsot/index.html时不跳转.

RewriteRule ^/(.*) http://www.csdn.net/$1 [R,L]   
#当输入http://localhost/mm/index.htm 时转到http://www.csdn.net/mm/index.htm
========================

apache_plugin:

apache和weblogic放在不同的机器上,动态生成的页面发到weblogic上去。
配置方法:

在每一台机器的apache配置文件中httpd.conf加入:

ServerName 10.88.3.7:80(apache服务器的IP和端口)

LoadModule weblogic_module modules/mod_wl_20.so

<IfModule mod_weblogic.c>
WeblogicHost <填写weblogic主机名或IP地址>
WeblogicPort <weblogic服务端口>
</IfModule>

<Location />
SetHandler weblogic-handler
</Location>

例:
LoadModule weblogic_module modules/mod_wl_20.so

<IfModule mod_weblogic.c>
WeblogicHost zhcxa.tj
WeblogicPort 7001
</IfModule>

<Location />
SetHandler weblogic-handler
</Location>

4.7版本n(n>1)级域名自动生成并绑定的说明

4.7版本的子店n(n>2)级域名自动生成并绑定 的功能要达到以下效果
[attach]5170[/attach]

将以上对子店的访问形式,改写为
[attach]5171[/attach]

4.7多店中子店的n级域名绑定 的原理是使用apache强大的url rewrite功能实现的,有关url rewrite的详细说明请看apache的手册。

apache的url rewrite是基于正则表达式的,所以看这篇文章前最好对正则表达式有个印象

一、启用该功能的要求

1.必须是apache 服务器

2.apache必须已经打开mod_rewrite
[attach]5165[/attach]

如果windows下在httpd.conf中将附图上这行的注释符去掉就行了
[attach]5167[/attach]

如果您是*nix下编译安装,可以参考这个编译参数,这样会把重写模块编译进apache核心中,加快处理速度
./configure \
–prefix=/usr/local/apache \
–with-mpm=prefork \
–enable-so \
–enable-rewrite=static \
–enable-track-vars

3.网站的域名必须做泛解析,就是让* .site.com 都能指向的您服务器

本地测试可以修改hosts文件,模拟泛解析
[attach]5168[/attach]

二、配置过程:

1.配置apache的重写表,重写表保存有n级域名和子店实际物理地址的映射关系。

在include/mall_config.php中
$RewriteMap_Url=”rmap/vhost.map”;
设置apache重写表的保存地址,它的位置是相对与syssite目录。
重写表的格式如下
n级域名 子店的实际物理地址
样例:

shop1.www.xuni.com D:/Server/wwwroot/shopexm47/syssite/home/shop/00/00/01

它的内容将会由ShopEx的注册程序在子店开通时生成。

由于这个文件保存有网站的物理地址,务必请将它设置为 一个 不容易猜测 的目录。
[attach]5166[/attach]

2.在apache的配置文件httpd.conf中启用rewrite map功能

打开apache的配置文件httpd.conf在末尾添加以下配置信息

*nix系统的内容如下

RewriteLog          logs/rewrite.log
RewriteLogLevel     0
RewriteEngine       on
RewriteMap          lowercase int:tolower
RewriteMap          vhost txt:/var/www/html/syssite/vhost.map
RewriteCond         ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
RewriteCond         ${vhost:%1} ^(/.*)$
RewriteRule         ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}}]

windows系统的内容如下

RewriteLog          logs/rewrite.log
RewriteLogLevel     0
RewriteEngine       on
RewriteMap          lowercase int:tolower
RewriteMap          vhost txt:D:/Server/wwwroot/shopexm47/syssite/rmap/vhost.map
RewriteCond         ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
RewriteCond         ${vhost:%1} ^(D:/.*)$
RewriteRule         ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}}]
[attach]5169[/attach]

附图中的

RewriteLogLevel     5

是用于调试用的,这样可以在logs/rewrite.log中看到形如:

127.0.0.1 – - [10/May/2007:11:33:42 +0800] [shop1.www.xuni.com/sid#2cc240 ][rid#5934a80/initial] (4) RewriteCond: input=’shop1.www.xuni.com ‘ pattern=’^(.+)$’ => matched
127.0.0.1 – - [10/May/2007:11:33:42 +0800] [shop1.www.xuni.com/sid#2cc240 ][rid#5934a80/initial] (5) map lookup OK: map=vhost[txt] key=shop1.www.xuni.com -> val=D:/Server/wwwroot/shopexm47/syssitehome/shop/00/00/01
127.0.0.1 – - [10/May/2007:11:33:42 +0800] [shop1.www.xuni.com/sid#2cc240 ][rid#5934a80/initial] (4) RewriteCond: input=’D:/Server/wwwroot/shopexm47/syssitehome/shop/00/00/01′ pattern=’^(D:/.*)$’ => matched
127.0.0.1 – - [10/May/2007:11:33:42 +0800] [shop1.www.xuni.com/sid#2cc240 ][rid#5934a80/initial] (2) rewrite ‘/index.php’ -> ‘D:/Server/wwwroot/shopexm47/syssitehome/shop/00/00/01/index.php’

以上的log片段就是一个 rewrite的过程。

设为5是用于调试的,实际使用环境下务必将 RewriteLogLevel 设置为0,否则rewrite的log很快将您的磁盘撑爆!

要点:

1.正则^(.+)$ 要和vhost.map的第一部分匹配,在这个例子中^(.+)$是可以匹配shop1.www.xuni.com

2.正则^(D:/.*)$要和vhost.map的第二部分匹配,在这个例子中^(D:/.*)$是可以匹配D:/Server/wwwroot/shopexm47/syssite/home/shop/00/00/01的

3.vhost.map的地址要用*nix like的格式,就是要用/表示目录,而不是windows的\

所以win的主机要用
RewriteCond         ${vhost:%1} ^(D: /.*)$
把盘符D:加入到正则中,如果您的web文件不是放在D盘而是E盘,要把D:改为E:。
而*nix没有盘符,所以用
RewriteCond         ${vhost:%1} ^(/ .*)$

4.这段配置信息的位置,一般放在httpd.conf的末尾。但是如果您的总站是用VirtualHost进行绑定 ,请将以上的配置信息放在在VirtualHost的段中。

样例:
<VirtualHost 10.1.2.3>
    DocumentRoot    /www/docs/host.foo.com
    ServerName   host.foo.com
    ErrorLog   logs/host.foo.com-error_log
    TransferLog   logs/host.foo.com-access_log

    RewriteLog          logs/rewrite.log
    RewriteLogLevel     0
    RewriteEngine       on
    RewriteMap          lowercase int:tolower
    RewriteMap          vhost txt:/var/www/html/syssite/vhost.map
    RewriteCond         ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
    RewriteCond         ${vhost:%1} ^(/.*)$
    RewriteRule         ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}}]
</VirtualHost>

三、网店后台配置说明

前缀+商品ID方式    shop     shopxxx.mysite.com
申请的商店用户名方式   username.mysite.com    (中文名会有问题)

四、参考资料:

1.rewrite map的路径问题:   http://www.webmasterworld.com/apache/3239775.htm

2.简易正则表达式文档:       http://www.w3pop.com/sucai/regular_expression/regular_expression.htm#reference

Win的主机的Server变量有点不一样,需要替换syssite目录下的register_act.php文件,否则生成
rewrite map有问题!

关键的配置在这里:一是要打开 Httpd.comf中的
LoadModule rewrite_module modules/mod_rewrite.so   
RewriteEngine On
<VirtualHost 192.168.0.52:80> //这个是你原来的虚拟主机
   AddDefaultCharset GB2312
   ServerAdmin *@*.*
   ServerName www.a.com
   DirectoryIndex index.htm index.html index.jsp
   ErrorLog logs/*.net-error_log
   CustomLog logs/*.net-access_log common
   RewriteEngine     on
   RewriteLog           logs/rewrite.log
   RewriteRule       ^/$ http://www.b.com/ $1 [R=301,L] //这里设置转向

   </VirtualHost>

apache的404错误自定义跳转说明

404错误其实就是我们经常见到的找不到文件的错误,但是那是默认的效果,很难看。

有时候我们需要的这样的功能:我们要记录下来404是的页面时哪些,更有些时候我需要判断404页面是不是本来系统应该生成的静态页面但是没有生成成功的,如果是,我们应该生成这个静态页面,然后把生成的静态页面返回给用户。

我要处理的逻辑就是:把404错误跳转到一个页面,我们取名叫:missing404.php

然后再这个页面中实现我们需要的功能。

首先定义跳转:在虚拟站点定义中使用如下语句即可。

ErrorDocument 404 http : //www.blogguy.cn/missing404.php

 

定义完成后的虚拟站点如下

< VirtualHost *: 80 >

     ServerAdmin     wayswang @ gmail . com

      DocumentRoot / usr / local / apache / htdocs / blogguy . cn

      ServerName www. blogguy . cn

      ServerAlias     blogguy. cn

      ErrorLog logs/ blogguy . cn_err_log

      CustomLog logs/ blogguy . cn - access_log2 common

      ErrorDocument 404 http: //www.blogguy.cn/missing404.php

     < IfModule mod_limitipconn . c >

      <Location / upimg / soft >

         MaxConnPerIP 5

     </ Location >

      </IfModule >

</VirtualHost >

在missing404.php中的处理将另外说明

这里再提供另外一种方法,但是不推荐,以为比较耗资源,使用 .htaccess 来重定向

在 .htaccess 中加入

ErrorDocument 404 / 404.html

不要以为就此完了,你可能会发现404.html根本跳转不到他上面去,嘿嘿,原因是你的404.html文件太小了,IE认为找不到,又是404错误。如果404.html的小于512字节的话,那么IE会认为这个错误页面不够“友好”,会忽视掉的。

分享到:
评论

相关推荐

    Apache代理转发配置

    Apache代理转发配置 

    apache转发配置

    Apache配置可以采用两种不同的方式实现转发,一种是直接采用ProxyPassReverse方式,一种是通过rewrite方式

    apache转发服务器

    综上所述,Apache转发服务器是一种强大的网络架构工具,它能够灵活地管理和优化服务器集群,提高服务的稳定性和效率。通过深入理解和配置Apache的相关模块,我们可以构建出符合业务需求的高效网络环境。

    apache phpmyadmin php mysql 域名转发

    标题 "apache phpmyadmin php mysql 域名转发" 涉及到的是在Web服务器环境中配置Apache,以便通过PHPMyAdmin访问MySQL数据库,并实现域名转发。这是一个常见的任务,特别是对于那些需要远程管理数据库或者搭建多站点...

    Apache&weblogic;安装及配置反向代理转发

    Apache 和 Weblogic 安装及配置反向代理转发 在本文中,我们将详细介绍如何安装和配置 Apache 和 Weblogic,以实现反向代理转发。该配置可以将 Weblogic 服务器的内容转发到 Apache 服务器上,从而提高网站的性能和...

    WebLogic11G集群配置+apache安装及配置转发

    以上就是WebLogic 11G集群配置和Apache安装及配置转发的基本步骤和关键知识点,实际操作中可能还需要根据具体环境调整配置,例如防火墙规则、DNS设置等。正确配置后,Apache可以作为WebLogic集群的高效负载均衡器,...

    Windows 环境下Apache HTTP Server 2.2的安装和使用apache转发weblogic集群

    NULL 博文链接:https://xiaoxihai123.iteye.com/blog/1284032

    apache和tomcat的区别

    apache和tomcat的区别 在讨论apache和tomcat的区别之前,我们需要了解这两个概念是什么。Apache是一个开源的Web服务器软件,是一个基于HTTP协议的Web服务器,可以处理静态网页,而Tomcat是一个基于Java的应用服务器...

    linux的Apache用户认证、域名跳转、Apache访问日志介绍1

    Apache用户认证、域名跳转和访问日志是Linux系统中管理Apache HTTP服务器时的重要功能,它们对于网站的安全性、用户体验和运维监控具有关键作用。 **Apache用户认证** Apache用户认证是一种安全机制,允许管理员...

    配置Apache双向认证和反向代理(Apache+配置文档)

    windows下配置Apache双向认证和反向代理(Apache+配置文档)

    Apache+Jboss负载均衡加域名转发

    通过上述步骤,Apache与JBoss可以有效地协同工作,实现负载均衡和域名转发。这不仅提高了系统的性能和稳定性,还增强了系统的可扩展性和灵活性。对于大型网站和企业级应用而言,这种配置是构建高可用架构的重要组成...

    Apache+Tomcat服务器集群实现负载均衡

    在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。 在tomcat中有两个监听的端口,一个是...

    手工安装geoip模块,实现apache根据IP进行URL跳转

    ### 手工安装GeoIP模块实现Apache根据IP进行URL跳转 #### 一、引言 随着互联网技术的发展,地域定位服务变得越来越重要。通过识别客户端的IP地址,可以为用户提供更加个性化的内容和服务。本文主要介绍如何手动...

    apache2.0.58 和mod_jk-apache-2.0.58.so

    描述中提到的"mod_jk"是Apache的一个模块,专门用于连接Apache和Tomcat。mod_jk是Apache的JavaKERNEL(JK)的一部分,它负责负载均衡、故障转移以及Apache与Tomcat之间的通信。通过mod_jk,Apache能够识别出需要由...

    apache2.2 和2.4 mod_jk 1.2.4

    Apache HTTP Server是世界上最流行的Web服务器软件之一,而`mod_jk`是Apache的一个模块,用于连接Apache和Tomcat,实现Web应用的负载均衡和反向代理。本压缩包包含适用于Apache 2.2和2.4版本的`mod_jk`模块的动态...

    tomcat集群配置所需要的apache和mod_jk-apache-2.0.55.so

    Apache和Tomcat是两种常用的Web服务器和应用服务器。在企业级环境中,为了提高服务的可用性和性能,常常会采用Tomcat集群的配置。本压缩包提供了实现Tomcat集群配置所需的Apache服务器和mod_jk模块,具体版本为...

    windows下整合apache和tomcat

    "Windows下整合Apache和Tomcat"的主题涉及到如何在Windows操作系统上设置一个环境,使得Apache能够有效地分发静态内容,而Tomcat则专注于处理JSP和Java Servlet等动态内容。这种配置可以优化网站的性能,因为静态...

    windows下整合apache和tomcat服务器的方法

    **Apache和Tomcat整合的意义:** Apache因其高效、稳定和安全的特点,成为许多网站首选的Web服务器。然而,对于处理动态内容,如JSP和Servlet,Apache的能力相对较弱。而Tomcat作为一个轻量级的应用服务器,专门用于...

Global site tag (gtag.js) - Google Analytics