通过在转发之后访问原始请求URI来修改mod_rewrite

时间:2013-09-24 10:45:47

标签: apache .htaccess http httprequest

比如说我有请求test.com/。

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

我想做以下事情。

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

    if(原始请求是http://test.com/ *)         {             if(用户代理是移动)             {                 if(!(用户代理是IOS或Android或Blackberry或Windows Phone))                 {                     URL重写                 }             }         }

  3. 3.URL重写我想编写如下的重写规则。

    http://test.com/abc/index.html ----> http://test2.com/mobil/abc/index.html

    我尝试过类似下面的内容。我是新来的。

    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] 
    

    请帮助我实现这一目标。

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

1 个答案:

答案 0 :(得分:2)

test.com的请求会将HTTP_HOST设置为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]