Permalinks mit Nginx und WordPress

Nach doch zahlreichen Problemen und nicht laufenden Rewriterules im Internet lies sich WordPress letztlich dennoch überreden, auch mit Nginx vernünftige, SEO freundliche URLs darstellen zu lassen.

if (!-e $request_filename) {
rewrite ^([_0-9a-zA-Z-]+)?(/wp-.*) $2 break;
rewrite ^([_0-9a-zA-Z-]+)?(/.*\.php)$ $2 last;
rewrite ^ /index.php last;
}

Danach funktionieren die Rewriterules auch mit Nginx vernünftig und es müssen keine weiteren Einstellungen für vorhandene Verzeichnisse, oder Grafik- & Styledatein vorgenommen werden.

3 Kommentare

Vladimir 23. Oktober 2009

Sorry, I don't speak German (though understand it a bit), but your rewritw configuration is not optimal: checking everytime if $request_filename exists negatively imapcts the performance.

The correct configuration should look like this:

<code>
location / {
log_not_found off;
error_page 404 = @wordpress;
}

location @wordpress {
fastcgi_pass …;
fastcgi_param SCRIPT_FILENAME /path/to/blog/index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_NAME /path/to/blog/index.php;
}

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

fastcgi_index index.php;
fastcgi_pass ..;
fastcgi_param SCRIPT_FILENAME /path/to/blog$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
</code>

This reduces the number of checks (in fact, only .php files are checked).

If you use nginx 0.7.x, you can use try_files instead – this seems to be faster.

tAXMAN 23. Oktober 2009

Versuch 3.0! Welcome back!

Rouly 17. Dezember 2009

An sich n cooler post, aber kannst beim nächsten mal n bisschen detailierter sein?

Kommentarfunktion ist deaktiviert

Wir haben Cookies, aber nicht fürs Krümelmonster. Nom Nom

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen", um Ihnen das beste Surferlebnis möglich zu geben. Wenn Sie diese Website ohne Änderung Ihrer Cookie-Einstellungen zu verwenden fortzufahren, oder klicken Sie auf "Akzeptieren" unten, dann erklären Sie sich mit diesen.

Schließen