我正在尝试将我的博客从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 \;
}
答案1
您误解了 root 的用法。您真正想要的是别名指令:http://wiki.nginx.org/NginxHttpCoreModule#alias