Я пытаюсь переместить свой блог из 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