
Ich weiß, dass es andere gibt, die diesem Thread ähnlich sind, aber ich habe es schon seit Tagen versucht und kann es derzeit nicht durchbringen, mit der folgenden Nginx-Konfiguration auf Ubuntu 18
server {
listen 80;
root /var/www/html/wordpress/public_html;
index index.php index.html;
server_name "example.com";
access_log /var/log/nginx/SUBDOMAIN.access.log;
error_log /var/log/nginx/SUBDOMAIN.error.log;
location /blog {
index index.php index.html index.htm;
try_files $uri $uri/ /blog/index.php?q=$uri&$args;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}}
Hier ist die aktuelle Struktur meines Ordners
- /var/www/html/wordpress/public_html -> Ordner „Blog“ und eine einfache „index.html“ einschließen (bedient nicht WordPress)
- /var/www/html/wordpress/public_html/blog -> ist der Speicherort meiner WordPress-Dateien
Zur Lösung benötige ich jedoch zwei falsche Teile.
- Es zeigt "mysite.com/blog" korrekt an, aber wenn ich auf einen Blog oder eine URL klicke -> zeigt es "example.com/?p=1" und führt daher zu einer einfachen index.html an der Position / ("example.com")
- Ich kann auch nicht auf wp-admin zugreifen. Wenn ich "example.com/blog/wp-admin" eingebe -> "http://example.com/wp-login.php?redirect_to=http%3A%2F%2Fexample.com%2Fblog%2Fwp-admin%2F&reauth=1 -> dann 404, wird es hierher umgeleitet.
Vielen Dank.
Aktualisierung 2: Ich habe versucht, WP_SITEURL in example.com UND WP_HOME in example.com/blog zu ändern und habe auch diese beiden Datensätze in der MySQL-WP-Options-Tabelle geändert. Als ich jedoch versuchte, auf /blog/wp-admin zuzugreifen ->http://example.com/blog/wp-admin/example.com/blog/wp-login.php?redirect_to=http%3A%2F%2Fexample.com%2Fblog%2Fwp-admin%2F&reauth=1-> 404
Antwort1
Sicherlich brauchen Sie
root /var/www/html/wordpress/public_html/blog;
im Blocklocation /blog {}
Darüber hinaus sollte der Block location ~ \.php$
wie folgt aussehen:
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
außerdem müssen Sie die try_files-Direktive ändern in
try_files $uri $uri/ /blog/index.php?$args;