suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So schreiben Sie eine Nginx-Unterverzeichnis-301-Umleitung

Ich bin kürzlich auf ein solches Problem mit der Website gestoßen.
Die PC-Adressseite ähnelt www.abc.com/pc/123/index.html
Die entsprechende M-End-Adresse lautet m.abc.com/sj/123/index.html
123 Dieses Verzeichnis ist nicht festgelegt und hat andere Namen. Sowohl pc als auch sj sind festgelegt, daher gibt es andere Entsprechungen wie:
PC www.abc.com/pc/222/index.html
M m.abc.com/sj/222/index.html

Sie müssen hier ein Urteil fällen und in Nginx einsteigen. Meine ursprüngliche Schreibmethode ist:

location /pc/ {
    if ($http_user_agent ~* "((Android)|(blackberry)|(googlebot-mobile)|(iemobile)|(ipad)|(iphone)|(opera mobile)|(palmos)|(webos)|(UCBrowser)|(wap)|(Opera Mobi))"){
                    return 301 http://m.abc.com/sj$request_uri;
}

Offensichtlich wird das obige Schreiben zu einem Sprung entsprechend:
PC www.abc.com/pc/222/index.html
M m.abc.com/sj/pc/222/index.html
Das ist nicht das, was ich wollen. Wie entferne ich das PC-Verzeichnis aus $request_uri?
Fragen Sie Gott. Wie umschreiben?

ringa_leeringa_lee2771 Tage vor1016

Antworte allen(2)Ich werde antworten

  • 漂亮男人

    漂亮男人2017-06-06 09:56:36

    location ~ /pc/(.*) {
        if ($http_user_agent ~* "((Android)|(blackberry)|(googlebot-mobile)|(iemobile)|(ipad)|(iphone)|(opera mobile)|(palmos)|(webos)|(UCBrowser)|(wap)|(Opera Mobi))"){
                        return 301 http://m.abc.com/sj/$1;
    }
    不知道这样行不行

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-06-06 09:56:36

    location ~ ^/pc/(.*) {
        if ($http_user_agent ~* "((Android)|(blackberry)|(googlebot-mobile)|(iemobile)|(ipad)|(iphone)|(opera mobile)|(palmos)|(webos)|(UCBrowser)|(wap)|(Opera Mobi))") {
            return 301 http://m.abc.com/sj/$1;
        }
    }

    Antwort
    0
  • StornierenAntwort