6

モバイルデバイスからのすべてのリクエストを/mobile/ $ uriにリダイレクトするようにnginxをセットアップしようとしていますが、このソリューションを思いつきましたが、機能しないようです。それは構文上の問題なのか、それともリダイレクトの概念全体の誤解なのか。

if ($http_user_agent ~* '(iPhone|iPod|android|blackberry)') {
     rewrite     ^(.*)   http://xxxx.org/mobile/$1 permanent;
}

私のAndroid携帯電話を使用すると、xxx.org / mobile / mobile / mobile /mobile...のようなものが表示されます。

何かアイデアはありますか?何か提案はありますか?

4

3 に答える 3

7

別の場所を使用する必要があります。

location / {
    if ($http_user_agent ~* '(iPhone|iPod|android|blackberry)') {
        return 301 /mobile$request_uri;
    }
}

location /mobile/ {

}

ところで、http://nginx.org/r/return

于 2012-07-09T12:23:57.227 に答える
4

http://detectmobilebrowsers.com/を使用してください。これには、すべての Web サーバーおよびクライアント/サーバー側言語用のスクリプトがあります。

于 2012-09-07T08:51:43.803 に答える
4
    #initliaze mobile
    set $mobile "";

    if ($request_uri !~* "^/mobile.*" ){
        set $mobile Y;
    }
    if ($http_user_agent ~* (iPhone|iPod|android|blackberry) ) {
        set $mobile "${mobile}E";
    }

    if ( $http_referer !~* "xxx\.org" ){
       set $mobile "${mobile}S";
    }

    if ( $host ~* "xxx\.org" ){
       set $mobile "${mobile}S";
    }

    if ($mobile = YESS){
        rewrite ^ $scheme://$host/mobile$request_uri ;
    }
于 2014-09-23T19:00:46.393 に答える