Apache 转发后通过访问原始请求URI重写mod_

Apache 转发后通过访问原始请求URI重写mod_,apache,.htaccess,http,httprequest,Apache,.htaccess,Http,Httprequest,比如说我有request test.com/ 在DNS中,test.com指向test2.com。因此,我的请求来到test2.com 我想做以下几件事 test.com/*的所有请求都将重定向到test2.com(通过DNS映射到新服务器) 在test2.com中,我必须执行以下操作 如果(原始请求为*) { 如果(用户代理是移动的) { 如果(!(用户代理是IOS或Android或Blackberry或Windows Phone)) { URL重写 } } } 3.URL重写我想写一个如下的

比如说我有request test.com/

在DNS中,test.com指向test2.com。因此,我的请求来到test2.com

我想做以下几件事

  • test.com/*的所有请求都将重定向到test2.com(通过DNS映射到新服务器)
  • 在test2.com中,我必须执行以下操作

    如果(原始请求为*) { 如果(用户代理是移动的) { 如果(!(用户代理是IOS或Android或Blackberry或Windows Phone)) { URL重写 } } }

  • 3.URL重写我想写一个如下的重写规则

    ----->

    我试过下面的方法。我是新来的

    RewriteEngine On
    RewriteCond expr "%{HTTP_REFERER} -strmatch 'http://test.com'" [AND]
    RewriteCond %{HTTP_USER_AGENT} Mobile [AND]
    RewriteCond %{HTTP_USER_AGENT} !(IOS OR Android OR BlackBerry OR Windows Phone) [NC] 
    
    请帮助我实现这一目标


    语法可能不正确。请帮助我提供正确的语法

    test.com
    的请求将把HTTP\u主机设置为
    test.com
    。你可以在规则中使用这个

    试试这个:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^test\.com$
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod" [NC]
    RewriteRule ^(.*)$ http://test2.com/mobil/#1 [L]
    

    非常感谢。如果可能的话,你能告诉我重写规则吗。我刚刚随机写了语法,请帮我纠正语法。这应该是你想要的。请随意问我它是否工作。在手机中,我还想检查用户代理以获取Iphone/Blackberry/Android/Windows类型的手机。我不知道客户是如何识别自己的。互联网上应该有列表。您只需用适当的正则表达式替换
    ^Mobile$
    。我以为您对一个特定的客户感兴趣,该客户将自己标识为
    Mobile
    。我将为Android添加一个示例。