2016-09-28 3 views
1

Viele PHP-Frameworks vorschlagen, dies zu nginx hinzuzufügen:

location/{ 
    try_files $uri /index.php$is_args$args; 
} 

index.php auf alle HTTP-Anfragen auszuführen.

Warum brauche ich $is_args$args? Ich denke, die $args sind bereits in der HTTP GET-Anfrage. Warum muss Nginx sie so an index.php übergeben?

Antwort

0

Es hängt davon ab, wer schrieb index.php. Eine große Anzahl von Parametern wird von nginx an PHP gesendet, und normalerweise gehören QUERY_STRING und REQUEST_URI dazu.

Wenn der Programmierer auf $_SERVER["QUERY_STRING"] zugreift, erhalten sie, was am Ende von /index.php in der try_files Anweisung angehängt wurde.

Wenn der Programmierer greift $_SERVER["REQUEST_URI"] sie den Original-URI zusammen mit dem ursprünglichen Abfrage-String empfangen wird, und alles, was bis zum Ende der /index.php in der try_files Erklärung angehängt wird, dass nicht beeinflussen.

Die zwei Anwendungen, die ich host (WordPress und MediaWiki) verwenden offensichtlich die letzteren, weil ich $is_args$args an die /index.php anfügen und alles funktioniert gut.

Aber eine andere Anwendung kann sich anders verhalten.

Verwandte Themen