怎么让apache根据不同的http头转向不同的url?

发表于:2007-05-25来源:作者:点击数: 标签:
比如根据http信息得到浏览器是IE,还是NetScape,然后转向不同的页面 能象程序那样获得http头的信息吗?然后根据头信息转向不同的页面吗? aspbiz 回复于:2004-10-26 22:36:03 应该可以的,关注。 abel 回复于:2004-10-27 00:15:52 BydifferentAgent: [cod

比如根据http信息得到浏览器是IE,还是NetScape,然后转向不同的页面 
能象程序那样获得http头的信息吗?然后根据头信息转向不同的页面吗?

 aspbiz 回复于:2004-10-26 22:36:03
应该可以的,关注。

 abel 回复于:2004-10-27 00:15:52
By different Agent:
[code:1:91b95901d6]
RewriteCond %{HTTP_USER_AGENT}  ^Mozilla/3.*
RewriteRule ^index\..*$         moz.html          [L]

RewriteCond %{HTTP_USER_AGENT}  ^Lynx/.*         [OR]                    
RewriteCond %{HTTP_USER_AGENT}  ^Mozilla/[12].*
RewriteRule ^index\..*$         lyx_moz.html          [L]
[/code:1:91b95901d6]

or by different Language
[code:1:91b95901d6]
RewriteCond %{HTTP:Aclearcase/" target="_blank" >ccept-Language} gb2312 [NC]
RewriteRule .*index\.html$ www.domain.com/gb/index.php
RewriteCond %{HTTP:Accept-Language} UTF-8 [NC]
RewriteRule .*index\.html$ www.domain.com/utf-8/index.php

[/code:1:91b95901d6]

所以絕大多數的 $_SERVER ($ENV) 都可以 rewrite rule

 Fun-FreeBSD 回复于:2004-10-27 11:00:36
不好意思,刚开始考虑不周全,是这样的
我们有两种手机,两种手机使用不同的的mime.types对应同一个123.mmf文件:
[code:1:e3e6a81eca]
application/vnd.smaf       mmf
application/x-smaf           mmf
[/code:1:e3e6a81eca]

但是只有后边的application/x-smaf  mmf生效,我想根据不同的user-agent对应不同的mime.types,实现这样的功能:
[code:1:e3e6a81eca]
if   {user-agent=NEC } 
then
    application/vnd.smaf       mmf
else
    application/x-smaf           mmf
fi
[/code:1:e3e6a81eca]

 zjzf_1 回复于:2004-10-28 09:20:06
借助php也可以实现

 Fun-FreeBSD 回复于:2004-10-28 11:27:19
这是我的配置

[code:1:a7aac3a370]
RewriteEngine on
RewriteCond  %{HTTP_USER_AGENT}  .*NEC-N810*
RewriteRule  ^/test/(.*)\.mmf /test/$1\.mmf  [R,T=application/x-smaf]
[/code:1:a7aac3a370]

显示403错误,被禁止了,阿宝哥,帮帮忙,给个提示吧 :(

 abel 回复于:2004-10-28 11:43:27
Rewrite Rule 根據不同的 AGENT, 導到不同的目錄或 VH 上
再該目錄或 vh 上設
AddType Application .... 
來定義,這樣應該可以吧
我沒有試過,但就觀念來說應該是可行的

 czj875 回复于:2004-10-28 12:35:42
俺来好好学学```

 Fun-FreeBSD 回复于:2004-10-28 12:42:02
我做个了转向就可以了,不知道上边的那个为什么不行 

[code:1:78664ea1b2]
RewriteEngine on
RewriteCond   %{HTTP_USER_AGENT}   .*NEC-N810*
RewriteRule  ^/test/(.*) /test.netc/$1    [PT]
Alias  /test_nec/   "/usr/local/apache/htdocs/res/test/"
<Location  /test_nec>
  ForceType   application/x-smaf
</Location>
[/code:1:78664ea1b2]

 Fun-FreeBSD 回复于:2004-10-28 12:50:21
[quote:6f06860cd0="abel"]Rewrite Rule 根據不同的 AGENT, 導到不同的目錄或 VH 上
再該目錄或 vh 上設
AddType Application .... 
來定義,這樣應該可以吧
我沒有試過,但就觀念來說應該是可行的[/quote:6f06860cd0]

可是我的文件是一个地方,一个目录,一个VH,同一个文件,但是这个文件要根据两种手机类型匹配两种不同的mime.type
如果我在目录或者VH里加AddType Application .... 那两种手机都会用同一个mime.type
我想把http://x.x.x/abc根据手机类型分类,然后再定向到自己,而不是另外的目录

不知道我表达清楚没有

 Fun-FreeBSD 回复于:2004-10-29 20:35:21
我又想了种方法,把文件后缀改了,不知道行不行,明天试试

[code:1:c393c40557]
AddType application/x-smaf  .nec
AddType application/vnd.smaf  .mmf

RewriteEngine on
RewriteCond   %{HTTP_USER_AGENT}   .*NEC-N810*
RewriteRule   ^/(.*)\.mmf   /$1\.nec   [NC,T=application/x-smaf]
[/code:1:c393c40557]

 wingger 回复于:2004-10-29 21:50:18
不好意思,我不太懂

是不是可以用程序实现呢?

用程序来判断是什么agent,再跳转??? :oops:  :oops:  :oops:

 HonestQiao 回复于:2004-10-30 09:24:44
用程序很好作的啊,无非是一个环境变量可以查到的。

如果使用php,phpinfo()可以看到$_SERVER[USER_AGENT]

 Fun-FreeBSD 回复于:2004-10-30 23:37:31
写程序的跟写铃声的没在一起,写完了才发现这个问题的,只好在服务器上解决了

 KindGeorge 回复于:2004-11-29 08:21:23
很好的话题

 bens 回复于:2005-04-22 00:47:13
我也遇到了同样的问题,也是NEC-N8手机的问题,据说可以在服务器上可以实现适配!兄弟您是否解决次问题 !十万火急!老总都急了:(他用的就是nec-n8
我改了mime.types可是S208又不可以了:(跪地求救!

 xjau_yzq 回复于:2005-04-22 10:26:59
好像用虚拟主机就可以实现

 zhangweibo 回复于:2005-07-14 11:43:18
自己定义一个后缀就行呀,反正铃声下载后,手机能认出他是smaf文件,照样能播放

 phphp 回复于:2005-07-16 20:56:56
学习中...

 _meme 回复于:2005-07-17 08:09:37
[quote:7b300d8b41="wingger"]不好意思,我不太懂

是不是可以用程序实现呢?

用程序来判断是什么agent,再跳转??? :oops:  :oops:  :oops:[/quote:7b300d8b41]

嗯, 用agent判断是相当标准的做法...... :em03:  :em03:  :em03:

原文转自:http://www.ltesting.net