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/wordpress
aber die URL sollte sich nicht ändern, sie sollte bleiben. mysite.com
Wenn jedoch jemand darauf zugreift, mysite.com/some_file.php
sollte 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.