recherche

Maison  >  Questions et réponses  >  le corps du texte

nginx - Conflit de règles de proxy ?

location ~ /(test1|test2|test3|test4) {
        proxy_set_header Host "test.com";
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://127.0.0.1;
}

if ($request_filename !~* ^/(.*)\.(zip|js|ico|css|php|xml|txt|html|swf|apk|ipa|plist)$) {
                rewrite ^/(.*)$ /index.php last;
 }

La règle de proxy ci-dessus ne prendra pas effet. Si vous supprimez la règle de réécriture, tout ira bien. Y a-t-il un conflit ? Comment le modifier ?

ringa_leeringa_lee2801 Il y a quelques jours1114

répondre à tous(1)je répondrai

  • 高洛峰

    高洛峰2017-05-16 17:28:41

    rewrite a une priorité plus élevée, ce qui entraîne la réécriture du chemin en premier. Vous pouvez utiliser location à la place pour faire correspondre. rewrite 优先级较高,导致路径已经先被重写了。可以都改用location去匹配。

        location ~ /(test1|test2|test3|test4) {
                proxy_set_header Host "test.com";
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://127.0.0.1:8080;
        }
    
        location ~* ^/(.*)\.(zip|js|ico|css|xml|txt|html|swf|apk|ipa|plist)$ {
            rewrite ^/(.*)$ /index.php last;
        }
    
        location ~ \index.php$ {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_hide_header X-Powered-By;
        }  
    
    

    不过确定 静态文件也要重写到 index.php rrreee

    Mais êtes-vous sûr que les fichiers statiques doivent également être réécrits en index.php ? 🎜

    répondre
    0
  • Annulerrépondre