GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wordpress - Das Ändern von Permalinks gibt mir 404-Fehler auf nginx

Ich verwende WordPress Multisite mit benutzerdefinierten Permalink-Einstellungen:/%category%/%postname%/

/etc/nginx/site-available/domain.conf

Auf dem Server{

location / {
    try_files $uri $uri/ /index.php?q=$uri$args;
}

Wenn Ihr Root-Wordpress nicht das Webroot ist, sondern http://domain.com/wordpress/:

location /wordpress/ {
    try_files $uri $uri/ /wordpress/index.php?q=$uri$args;
}

Wenn Sie altes WordPress mit blogs.dir verwenden, fügen Sie hinzu:location ^~ /blogs.dir {internal;alias /var/www/wordpress/wp-content/blogs.dir;access_log off; log_not_found aus; läuft maximal ab;}

Überprüfen Sie die nginx-Konfiguration:sudo nginx -t

nginx neu laden:sudo service nginx reload

Versuchen Sie auch, die Permalink-Einstellungen zu ändern.


Das sind Apache .htaccess Regeln neu schreiben, aber Sie haben angegeben, dass Sie sich auf einem Nginx-Server befinden. Nginx verwendet keinen .htaccess -ähnliche Datei auf Verzeichnisebene, viel weniger verwendet sie den .htaccess Datei selbst. Sie müssen die Serverkonfiguration selbst bearbeiten. Der Kodex hat ein Detailbeispiel:

# WordPress single blog rules.
# Designed to be included in any server {} block.

# This order might seem weird - this is attempted to match last if rules below fail.
# http://wiki.nginx.org/HttpCoreModule
location / {
    try_files $uri $uri/ /index.php?$args;
}

# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

# Directives to send expires headers and turn off 404 error logging.
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
       access_log off; log_not_found off; expires max;
}

# Uncomment one of the lines below for the appropriate caching plugin (if used).
#include global/wordpress-wp-super-cache.conf;
#include global/wordpress-w3-total-cache.conf;

# Pass all .php files onto a php-fpm/php-fcgi server.
location ~ [^/]\.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }
    # This is a robust solution for path info security issue and works with "cgi.fix_pathinfo = 1" in /etc/php.ini (default)

    include fastcgi.conf;
    fastcgi_index index.php;
#   fastcgi_intercept_errors on;
    fastcgi_pass php;
}

Musste dieses Stück Code sowohl zu /sites-available/your-settings-file hinzufügen und /sites-enabled/your-settings-file :

server {
[...]

if (!-e $request_filename) {
    rewrite ^.*$ /index.php last;
}

[...]
}

Bei mir funktioniert es jetzt.


Linux
  1. So installieren Sie WordPress mit Nginx unter Ubuntu 18.04

  2. nginx - 413 Anforderungsentität zu groß

  3. Installieren Sie WordPress auf Nginx Ubuntu

  4. Installieren Sie WordPress mit Docker Compose, Nginx, Apache mit SSL

  5. getpwnam(www) ist in /etc/nginx/nginx.conf fehlgeschlagen

So blockieren Sie XML-RPC in WordPress mit Nginx/Apache

So blockieren Sie den Zugriff auf wp-admin und wp-login in Nginx/Apache

So ändern Sie den WordPress-Port in Apache und Nginx

404 On Lamp Permalinks erhalten (mit WordPress)?

Installieren Sie WordPress mit Nginx auf Ubuntu 18.04

So installieren Sie WordPress auf einem Nginx LEMP-Stack mit Ubuntu 14.04