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

Nginx Rewrite в предыдущий каталог

Я пытаюсь переместить свой блог из blog.example.com к example.com/blog для этого я бы предпочел ничего не перемещать на диск, поэтому вместо этого я изменил свой файл конфигурации nginx на следующее:

location /blog {
if (!-e $request_filename) {
    rewrite ^.*$ /index.php last;
}
    root /home/demo/public_html/blog.example.com/current/public/;
    index  index.php index.html index.html;
        passenger_enabled off;
        index index.html index.htm index.php;
        try_files $uri $uri/ @blog;
}

Это отлично работает, но когда я захожу на example.com/blog, nginx ищет:

/home/demo/public_html/blog.example.com/current/public/blog/index.php 

вместо того

/home/demo/public_html/blog.example.com/current/public/index.php

Есть ли способ ввести правило перезаписи, чтобы сервер автоматически извлекал каталог / blog /?

что-то вроде ?

location /blog {
        rewrite \\blog\D  \;
    }

Вы неправильно поняли использование root. Что вам действительно нужно, так это директива псевдонима: http://wiki.nginx.org/NginxHttpCoreModule#alias