По заявлениям Игоря Сысоева (создателя Nginx) — rewrite-ы это очень плохо.. а еще доля рынка для Nginx постоянно растет 😉 Но создатели WordPress старательно игнорируют этот факт и приходится тратить много времени на поиск решений для работы мультисайтового WordPress!
Представляю реально рабочие конфигурации для двух типов установки WordPress 3 Multisite (вопросы оптимизации и тп — это отдельный вопрос и не освещается в рамках этой публикации)
Subdomain (поддомены)
server
{
root ../../..;
index index.php;
..
location ~ \.php$
{
..
}
location /
{
index index.php;
rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
f (!-e $request_filename) {
rewrite ^.+/?(/wp-.*) /$1 last;
rewrite ^(.+)$ /index.php?q=$1 last;
}
..
}
Subfolders (папки)
server
{
root ../../..;
index index.php
#on server block
##necessary if using a multi-site plugin
server_name_in_redirect off;
##necessary if running Nginx behind a reverse-proxy
port_in_redirect off;
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
location ~ \.php$
{
..
}
location /
{
rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
..
}
}
Вопрос с самими правилами в процессе не вставал (можно посмотреть толковый пример), — оказалось, что проблема в том куда вставлять код 🙂
CMS