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

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

比如根据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:Accept-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:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航