WordPress, nginx, htaccess, Plesk…

Ich teste derzeit das eine oder andere Hosting-System, so natürlich auch Plesk.

Bisher gefällt mit das System sehr gut und die Preise sind auch in Ordnung.

Angenehm finde ich die Möglichkeiten, für einzelne vServer unterschiedliche PHP Versionen zu nutzen und auch ein nginx als Proxy vorzuschalten.

Allerdings gibt es genau hier ein Problem in Verbindung mit WordPress:
Nutzt man Permelinks, funktionieren diese nicht. Die .htaccess Datei, welche der Apache nutzen würde, wird von dem nginx nicht ausgewertet wenn dieser als PHP Interpreter genutzt wird.

Ein Workaround für WordPress ist es, für alle vServer die Direktiven zu ändern, was für mich einfach keine Option ist, da es hier nur um einen Bruchteil aller Sites, auf dem WordPress überhaupt genutzt wird, geht. Alternativ gibt es dort noch ein nginx-Config-Snippet, was bei mir aber auch nicht sauber funktioniert hat. Es waren beispielsweise alle CSS Files nicht mehr erreichbar und das Design total im Eimer.

Die Lösung ist eine Anpassung den Snippets:

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

Einzutragen unter Plesk > Domains > domain.tld > Einstellungen für Apache & nginx > Zusätzliche nginx-Anweisungen.
Damit funktioniert es bei mir mit drei WordPress Installationen sauber, ohne alle anderen vServer zu beeinflussen.

Nachtrag:
Nachteil hierbei, der mir aufgefallen ist: Ein Zugriff auf die von Plesk erstellten AWstats/Webalizer Statistiken ist für diese Domain/Subdomain nicht mehr möglich, da auch diese URL umgeschrieben wird.