Puncte:0

Site-ul web PHP nu funcționează așa cum era de așteptat în NGINX, dar funcționează în Apache

drapel cn

Bună, tocmai am creat o aplicație de scurtare a linkurilor. Dar când încerc să redirecționez un link scurt la adresa URL completă care este partajată pe Facebook, nu funcționează așa cum era de așteptat. de exemplu : https://bowa.me/c8443 acest link merge bine dar dacă partajez linkul pe Facebook și linkul va fi așa https://bowa.me/c8443?fbclid=IwAR0Zm8bGRgrbpQTUX_aVXxTMNFq6-MlRFe0j8e_7wm4anbWmvArPlyDaAHI Acest link nu redirecționează

configurație nginx

Locație / {
            try_files $uri $uri/ /index.html /index.php;

    }

    locație ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         }

        locație ~ /\.ht {
            nega totul;
      }

    dacă (!-e $nume_fișier_cerere) {
            rescrie ^/admin/(.*)?$ /admin/index.php?a=$1 pauză;
            rescrie ^/(.*)$ /index.php?a=$1 ultimul;
            pauză;
    }
Michael Hampton avatar
drapel cz
Ar trebui să utilizați `try_files`, nu `if (!-e $request_filename) ...`
drapel cn
Folosesc „if (!-e $request_filename) ..” pentru că anterior descărca pagina în loc să redirecționeze. Am gasit aceasta solutie pe un forum. primul link pe care l-am distribuit funcționează perfect. dar al doilea nu este. și ambele lucrează în apache (xampp).
Puncte:1
drapel us

În nginx, lucrurile ar trebui făcute urmând cele mai bune practici nginx, nu încercând să convertiți practicile Apache2 în nginx. Aceasta este o rețetă pentru tot felul de probleme.

Ar trebui să încercați următoarea abordare:

# bloc pentru procesarea fișierelor PHP
locație ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

locație ~ /\.ht {
    nega totul;
}

# Capturați o parte după admin la variabilă și utilizați în try_files
locație ~ ^/admin/(.*)$ {
    try_files $uri $uri/ /admin/index.php?a=$1;
}

# Locație implicită, captură parte URI și utilizare ca argument
locație ~ ^/(.*)$ {
    try_files $uri $uri/ /index.php?a=$1;
}

Ordinea este importantă, nginx folosește prima potrivire a expresiei regulate de la Locație blocurile pe care le găsește.

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.