Nginx 子目录 - 位置路径已添加到根目录

Nginx 子目录 - 位置路径已添加到根目录

致力于访问位于我主网站根目录下的子目录中的 wordpress 安装程序。

我的主要网站存储在/var/www/example.com/htdocs
我的 wordpress 安装存储在/var/www/wordpress.example.com/wordpress

我希望能够从以下位置访问我的 WordPress 安装example.com/blog

server {
    ...
    root /var/www/example.com/htdocs;
    ...

    location ^~ /blog {
        root /var/www/wordpress.example.com/wordpress;
    }
}

但是,我得到了 404,其中/blog也添加到了根目录(这不是我想要的)。

未找到“/var/www/wordpress.example.com/wordpress/blog/index.php”

注意根目录如何显示/wordpress/blog。我希望它只显示/wordpress。我希望它可以从访问/blog,但/blog不应成为根目录的一部分,因为它不存在。

你能帮我解决这个问题吗?

答案1

@Drifter104 的答案是正确的,我只是想添加一个解释。你错误地使用了指令,你应该使用别名指令而不是 root。如果你使用的是 root,requested_uri(location 值)将添加到文件路径中。在你的情况下,如果 request_uri(location 值)/blog,nginx 将在 中搜索文件路径/var/www/wordpress.example.com/wordpress+/blog。但是如果你使用别名,nginx 将搜索的文件路径不是基于位置值的。这是 nginx 文档http://nginx.org/en/docs/http/ngx_http_core_module.html#alias

相关内容