it-swarm.com.de

Wie kann ich nginx dazu bringen, WordPress auf/blog zu schalten?

Wie kann WordPress mit /blog zum Leben erweckt werden, während eine andere Anwendung mit nginx das Stammverzeichnis / verwaltet?

Ich habe das gewöhnliche Subdomain-Setup gerade, was gut funktioniert.

Ich habe https://codex.wordpress.org/Nginx gelesen und meine Konfiguration gemäß WordPress als Unterverzeichnis geändert. In wp-config.php habe ich

define('WP_HOME','http://example.com/blog');
define('WP_SITEURL','http://example.com/blog');

aber ich bekomme immer wieder 404-Fehler oder WordPress lädt keine CSS-Dateien. Ich habe es auch versucht

location /blog {
  try_files /var/www/wordpress/$uri /var/www/wordpress/$uri/ /blog/index.php?$args;
}

Wieder 404s.

Dies muss eine häufig gestellte Frage sein, aber ich habe die Suchbegriffe nicht genau festgelegt (/blog, der so häufig vorkommt, hilft nicht).

Wo finde ich eine vollständige Nginx-Konfigurationsdatei und wp-config-Einstellungen, in denen WordPress unter /blog live ist? Muss ich irgendwelche WP Einstellungen in seiner MySQL Datenbank ändern?

1
Dan Dascalescu

Hier ist wasmeistensfunktioniert:

  1. Haben Sie eine Nginx-Konfigurationsdatei für das Subdomain-Setup und stellen Sie sicher, dass http://wordpress.example.com funktioniert.

  2. Verfügen Sie in der Nginx-Standardkonfiguration über einen location-Block für /blog, der als Proxy für die Unterdomäne fungiert:

    location /blog {
        rewrite ^/blog(/?.*)$ $1 break;  # remove "/blog"
        proxy_set_header Host wordpress.example.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://wordpress.example.com;
    }
    
  3. In wp-config.php haben Sie:

    define('WP_HOME','http://idorecall.com/blig');
    define('WP_SITEURL','http://idorecall.com/blig');
    

Ich sage, dass "meistens" funktioniert, weil:

  • Einige Seitenelemente werden möglicherweise nicht geladen. Die icomoon-Symbole, die vom Avada-Design in der Fußzeile verwendet werden, werden beispielsweise nicht angezeigt.
  • Wenn Sie über https auf Ihre/blog-URL zugreifen, z. bei http://example.com/blog, aber die wordpress-subdomain-konfiguration verwendet http, weigern sich die browser, viele ressourcen zu laden, mit einer warnmeldung "mixed content". Eine Lösung besteht darin, HTTPS auch auf der Subdomain zu aktivieren (StartSSL verfügt über ein Zertifikat mit einer freien Subdomain). Eine andere, ich vermute, ist, dass Sie eine Wordpress-Datenbank suchen und ersetzen müssen von http://wordpress.example.com mit http://example.com/blog .
  • Es ist eine zusätzliche Anfrage mit proxy_passing verbunden.
1
Dan Dascalescu