Nginx子目录 – 位置path添加到根

在我的主webroot的子目录中访问wordpress安装。

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

我希望能够从example.com/blog访问我的wordpress安装

 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”

注意root如何显示/wordpress/blog 。 我的愿望只是为了显示/wordpress 。 我希望它可以从/blog访问,但/blog不应该是根部分,因为它不存在。

你能帮我解决吗?

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