Regeln zum Umschreiben nginx

Regeln zum Umschreiben nginx

Ich versuche, Umschreiberegeln für meine Site zu konfigurieren, die auf nginx läuft. Wenn jemand auf die Website gelangt, soll er den Inhalt sehen, mysite.com/wordpressaber die URL sollte sich nicht ändern, sie sollte bleiben. mysite.comWenn jedoch jemand darauf zugreift, mysite.com/some_file.phpsollte er diese Datei sehen können. Wenn ich in meinem Standortblock eine 301-Umleitung hinzufüge, funktioniert es, aber wenn ich einige Umschreiberegeln hinzufüge, funktionieren sie nicht und ich sehe den Inhalt von root auf example.com. Bitte geben Sie mir einen Vorschlag, wie man Umschreiberegeln zum Funktionieren bringt.

das funktioniert, aber mit einer Änderung der URL example.com/wordpress(was nicht das gewünschte Ergebnis ist)

location = / {
    return 301 http://example.com/wordpress;
}

das funktioniert nicht

PHP NGINX-KONFIGURATION:

location = / {

    #   return 301 http://example.com/wordpress;
    # nginx configuration

    if ($http_host ~ "^(www.)example.com$"){
        rewrite ^(.*)$ /wordpress/ break;
    }
    if ($http_host ~ "^(.*).example.com"){
        rewrite ^(.*)$ http://example.com/wordpress/%1/$1 redirect;
    }
    if (!-e $request_filename){
        rewrite ^(.*)$ /wordpress/$1;
    }
    rewrite ^/(.*)index\.(php)$ http://$http_host/$1 redirect;

}
location ~ \.php$ {
    try_files $uri =404;
    include fastcgi_params;
    fastcgi_pass php;
}

Antwort1

Ich habe dies behoben, indem ich hinzugefügt habe

try_files $uri $uri/wordpress /wordpress/index.php?$args;

zum Standort / Block und Entfernen aller anderen Umschreibregeln. Dabei wird zunächst versucht, die Datei anzufordern, dann den Unterordner /wordpress und dann index.php im Unterordner.

verwandte Informationen