Назад | Перейти на главную страницу

Nginx выдает ошибку 404 для WordPress '/ wp-admin / root

Я использую следующий блок nginx для перенаправления mysite.com/blog в мой каталог / var / www / mysite / wordpress /:

location /blog {
    root /var/www/mysite/wordpress;
    rewrite ^/blog/(.+)$ /$1 break;
    try_files $uri $uri/ /blog/index.php?q=$uri&$args;
    index index.php;

    location ~ \.php {
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_split_path_info ^(?:\/blog)(.+\.php)(.*);
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Все работает нормально, за исключением того, что mysite.com/blog/wp-admin/ выдает ошибку 404. Посещение mysite.com/blog/wp-admin/index.php работает должным образом, поэтому похоже, что мое правило индекса не работает. В чем может быть проблема?

Решить эту проблему можно с помощью alias директива:

location ^~ /blog {
    alias /var/www/mysite/wordpress;
    index index.php;

    try_files $uri $uri/ /blog/index.php?q=$uri&$args;

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_split_path_info ^(?:\/blog)(.+\.php)(.*);
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}