Puncte:0

Cum se redirecționează la /index.php?/Test/ în nginx?

drapel ru

Am un server nginx. Vreau să redirecționez cererea /index.php?/Test/ către un alt server. Am încercat multe exemple, dar nu reușesc.

Am folosit exemplu:

Locație / {

    if ( $query_string = "/Ajax/" ) {

        returnează 301 http://localhost.com/index.php?/Ajax/;
    }

    locație /index.php*/Test/ {
        returnează 301 http://localhost.com/Test;
    }
    
    locație /index.php?/Test/ {
        returnează 301 http://localhost.com/Test;
    }

Depanare Nginx:

022/03/18 18:29:08 [depanare] 10022#0: *12 linie de solicitare http: „POST /?/Test/HTTP/1.1”
2022/03/18 18:29:08 [depanare] 10022#0: *12 http uri: "/"
2022/03/18 18:29:08 [depanare] 10022#0: *12 http args: "/Test/"
2022/03/18 18:29:08 [depanare] 10022#0: *12 http exten: ""
2022/03/18 18:29:08 [depanare] 10022#0: *12 posix_memalign: 00005614404B1200:4096 @16
2022/03/18 18:29:08 [depanare] 10022#0: *12 linie de antet cerere proces http
2022/03/18 18:29:08 [depanare] 10022#0: *12 antet http: „Content-Type: application/x-www-form-urlencoded”
2022/03/18 18:29:08 [depanare] 10022#0: *12 http header: „Gazdă: my.localhost.com”
2022/03/18 18:29:08 [depanare] 10022#0: *12 antet http: „Lungimea conținutului: 22”
2022/03/18 18:29:08 [depanare] 10022#0: *12 antet http: „Așteptați: 100-continuare”
2022/03/18 18:29:08 [depanare] 10022#0: *12 antet http terminat
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza generică: 0
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza de rescriere: 1
2022/03/18 18:29:08 [depanare] 10022#0: *12 locație de testare: „/”
2022/03/18 18:29:08 [depanare] 10022#0: *12 locație de testare: ~ "\.php$"
2022/03/18 18:29:08 [depanare] 10022#0: *12 folosind configurația „/”
2022/03/18 18:29:08 [depanare] 10022#0: *12 http cl:22 max:1048576
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza de rescriere: 3
2022/03/18 18:29:08 [depanare] 10022#0: *12 http regex script: „^/index\.php?/Test/$”
2022/03/18 18:29:08 [notificare] 10022#0: *12 „^/index\.php?/Test/$” nu se potrivește cu „/”, client: 1.1.1.1, server: my.localhost .com, cerere: „POST /?/Test/ HTTP/1.1”, gazdă: „my.localhost.com”
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza post rescriere: 4
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza generică: 5
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza generică: 6
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza generică: 7
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza generică: 8
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza de acces: 9
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza de acces: 10
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza de acces: 11
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza post acces: 12
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza generică: 13
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza generică: 14
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza de conținut: 15
2022/03/18 18:29:08 [depanare] 10022#0: *12 fază de conținut: 16
2022/03/18 18:29:08 [depanare] 10022#0: *12 deschide indexul „/var/www/test/public_html/index.php”
2022/03/18 18:29:08 [depanare] 10022#0: *12 redirecționare internă: „/index.php?/Test/”
2022/03/18 18:29:08 [depanare] 10022#0: *12 faza de rescriere: 1
2022/03/18 18:29:08 [depanare] 10022#0: *12 locație de testare: „/”
2022/03/18 18:29:08 [depanare] 10022#0: *12 locație de testare: ~ "\.php$"
2022/03/18 18:29:08 [depanare] 10022#0: *12 folosind configurația „\.php$”
    

Vreau să redirecționez toate cererile primite către alt server în același mod complet.

drookie avatar
drapel za
'?' literal este un separator care se află între argumentele URI și GET. Argumentele Get sunt stocate în $arg_ variabile, nu în $query_string; în plus, în cazul dvs., numele argumentului Get este incorect, deoarece începe cu slash, deci nu puteți face referire la el. Acesta este numărul de factori care te-au condus la fiasco.
drapel us
Am reformatat fragmentul de configurare pe care îl aveți în întrebarea dvs. Ești sigur că așa arată? Lipsește `}` de închidere pentru locația rădăcină.
djdomi avatar
drapel za
Am fost de acord cu drookie, dar ține cont, ar fi posibil să folosești un subdomeniu pentru solicitarea ta? deoarece în principiu păstrează structura, dar poate fi transmisă proxy către un alt server
M. Jeremy avatar
drapel ru
@drookie mulțumesc pentru răspuns. Tero Kilkanen: Am adăugat codurile, eticheta de închidere este mai jos. Îmi pare rău. djdomi: Am lucrat și am încercat, dar nu am făcut-o.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.