Was wäre die Nginx-Umschreibungsregel, um meine WordPress-Permalink-Struktur umzuleiten? /%category%/%postname%/
zu /%postname%/
?
NGINX-Umschreibungsregel zum Erhalten einer sauberen URL
Joel
Roggenbrot
Zusammenfassend müssen Sie NGINX mitteilen, dass, wenn diese Datei nicht existiert, kein 404-Fehler ausgegeben, sondern aufgerufen werden soll index.php
. WordPress ist intelligent genug, um die URL als Parameter zu analysieren und die richtige Seite bereitzustellen.
Fügen Sie dieses Snippet in Ihren Serverkonfigurationsblock ein:
location / {
try_files $uri $uri/ /index.php?$args;
}
Hier ist ein vollständiges Beispiel von nginx.org:
# Upstream to abstract backend connection(s) for php
upstream php {
server unix:/tmp/php-cgi.socket;
server 127.0.0.1:9000;
}
server {
## Your website name goes here.
server_name domain.tld;
## Your only path reference.
root /var/www/wordpress;
## This should be in your http block and if it is, it's not needed here.
index index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass php;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
-
Beachten Sie, dass „Nicht-Standard-Permalinks“ auch Kategorie-Links beinhalten. In meiner anfänglichen Einrichtung lautete diese Zeile
try_files $uri $uri/ =404
; ersetzen=404
mit/index.php?$args
war der notwendige Schritt, um meine Kategorielinks wieder zum Laufen zu bringen.– rsfinn
4. September 2016 um 22:58 Uhr